| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1091 人关注过本帖
标题:[求助]循环结构程序设计
只看楼主 加入收藏
静静不悲伤
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-11
收藏
 问题点数:0 回复次数:17 
[求助]循环结构程序设计

循环结构程序设计

输入一行字符,要求统计出英文字母、数字和其它字符的个数。


小弟最近看到一道C++题,百思不得其解,希望高人帮在下指点一二,不胜感激.

搜索更多相关主题的帖子: 结构 程序设计 
2007-09-27 14:59
远去的列车
Rank: 1
等 级:新手上路
威 望:2
帖 子:205
专家分:0
注 册:2007-8-7
收藏
得分:0 
“输入一行字符” 不解,还是统计个数不解呢?

C++学习
2007-09-27 15:34
cuiyuzheng
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-9-11
收藏
得分:0 
2007-09-27 16:28
TenY
Rank: 1
来 自:重庆大学
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-3-18
收藏
得分:0 
[CODE][/CODE]
string str ;
cout << "please type in the string" << endl ;
cin >> str ;
// define three counter for number, letter(upper,lower), other characters , separately.
int num = 0 ;
int letter = 0 ;
int otherChar = 0 ;
for(string::iterator iter = str.begin() ; iter != str.end() ; ++iter)
{
if ( (*iter == '0')
||(*iter == '1')
||(*iter == '2')
||(*iter == '3')
||(*iter == '4')
||(*iter == '5')
||(*iter == '6')
||(*iter == '7')
||(*iter == '8')
||(*iter == '9')
)
{
++num;
}
else if( (*iter == 'a')
||(*iter == 'A')
||(*iter == 'b')
||(*iter == 'B')
||(*iter == 'c')
||(*iter == 'C')
||(*iter == 'd')
||(*iter == 'D')
||(*iter == 'e')
||(*iter == 'E')
||(*iter == 'f')
||(*iter == 'F')
||(*iter == 'g')
||(*iter == 'G')
||(*iter == 'h')
||(*iter == 'H')
||(*iter == 'i')
||(*iter == 'I')
||(*iter == 'j')
||(*iter == 'J')
||(*iter == 'k')
||(*iter == 'K')
||(*iter == 'l')
||(*iter == 'L')
||(*iter == 'm')
||(*iter == 'M')
||(*iter == 'n')
||(*iter == 'N')
||(*iter == 'o')
||(*iter == 'O')
||(*iter == 'p')
||(*iter == 'P')
||(*iter == 'q')
||(*iter == 'Q')
||(*iter == 'r')
||(*iter == 'R')
||(*iter == 's')
||(*iter == 'S')
||(*iter == 't')
||(*iter == 'T')
||(*iter == 'u')
||(*iter == 'U')
||(*iter == 'v')
||(*iter == 'V')
||(*iter == 'w')
||(*iter == 'W')
||(*iter == 'x')
||(*iter == 'X')
||(*iter == 'y')
||(*iter == 'Y')
||(*iter == 'z')
||(*iter == 'Z'))
{
++letter ;
}
else
{
++otherChar ;
}
}
cout << "there is " << num << " numbers, " << letter << " letters, " << otherChar
<< " other characters. " << endl ;

应该是这样.
2007-09-27 21:48
mingreign
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2007-9-15
收藏
得分:0 
回复:(TenY)[CODE][/CODE] string str ; cou...
   难道你就不觉得麻烦吗?简化一下吧,很简单的.
2007-09-27 22:25
caixingxin
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-7-7
收藏
得分:0 

isdigit()
isalpha()....之类的函数就可以了,自己找下~


2007-09-27 23:19
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 

4楼和6楼的方法都有些“炮打蚊子”的意思了
比较简单的
int main(){
unsigned int alpha, digit, other; //分别保存字母、数字、其他的字符数
unsigned char str[256]={0};
//读取字符串,假设已经放到str[]中(略)
long i=0;
while(str[i])
if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
++alpha;
elseif(str[i]>='0'&&str[i]<='9')
++digit;
else
++other;
return 0;
}

计算结果alpha即是字母数,digit是数字数,other是特殊字符数


女侠,约吗?
2007-09-28 02:06
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
LZ的题目有歧意。

Fight  to win  or  die...
2007-09-28 13:16
he5220
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-9-28
收藏
得分:0 
恩~~~  是每个字符或数字的个数  还是如13楼所解??~~~

2007-10-02 11:29
Black_smart
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-8-13
收藏
得分:0 
7楼的方法很好,不过i貌似没有自增。。。,另外lz请说出不解的地方。

修改了一下:
#include<stdio.h>
void main()
{
int alpha=0, digit=0, other=0;
char str[256];
gets(str);
int i=0;
while(str[i])
{
if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
++alpha;
else
if(str[i]>='0'&&str[i]<='9')
++digit;
else
++other;
i++;
}
printf("%d\n%d\n%d\n",alpha,digit,other);
}

[此贴子已经被作者于2007-10-2 19:53:31编辑过]


C++初学者,请多指教.... 学习学习再学习,努力努力再努力!
2007-10-02 19:26
快速回复:[求助]循环结构程序设计
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011865 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved