课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565
题目
【项目1-小心地放开玩字符串/字符数组】
(1)读程序,请分析其实现的功能- #include<iostream>
- using namespace std;
- int main()
- {
- char str[50];
- int i=0,n=0;
- cout<<"输入字符串:";
- gets(str);
- while(str[i]!='\0')
- {
- if(str[i]>='0'&&str[i]<='9') n++;
- i++;
- }
- cout<<"其中的数字个数是: "<<n<<endl;
- return 0;
- }
- 统计字母'A'(空格)出现的次数;
- 统计字符串中(大/小写)字母个数;
- 统计每一个数字字符出现的次数(提示:笨办法,设十个变量,例a0,a1,...,a9分别保存个数;显示学过数组的办法,设数组a[10],a[0]代表'0'出现的个数,当str[i]为'0'时,a[str[i]-48]++);
- 统计每一个字母出现的个数(提示:没有必要设26个或52个变量)
参考解答
统计字母'A'(空格)出现的次数
#include<iostream>
using namespace std;
int main()
{
char str[50];
int i=0,n=0;
cout<<"输入字符串:";
gets(str);
while(str[i]!='\0')
{
if(str[i]=='A') n++;
i++;
}
cout<<"其中A出现的次数是: "<<n<<endl;
return 0;
}
统计字符串中(大/小写)字母个数
#include<iostream>
using namespace std;
int main()
{
char str[50]={"Asdw08jsdAHJTf67N"};
int i=0,n=0;
//cout<<"输入字符串:";
//gets(str);
while(str[i]!='\0')
{
if(str[i]>='A'&&str[i]<='Z')//改变条件可以求小写字母,或所有字母出现的次数
n++;
i++;
}
cout<<"其中大写字母出现的次数是: "<<n<<endl;
return 0;
}
统计每一个数字字符出现的次数
(提示:笨办法,设十个变量,例a0,a1,...,a9分别保存个数;显示学过数组的办法,设数组a[10],a[0]代表'0'出现的个数,当str[i]为'0'时,a[str[i]-48]++);
#include<iostream>
using namespace std;
int main()
{
char str[50]={"Tel:18363803401, QQ:90878965"};
int i,a[10]={0}; //a[0]代表'0'出现的个数……,初值全为0
for(i=0;str[i]!='\0';++i) //换种循环,这不是关键
{
if(str[i]>='0'&&str[i]<='9')
a[str[i]-'0']++; //若str[i]为'0',a[0]将增加;也可以写作a[str[i]-48]++
}
cout<<"\""<<str<<"\" 中各数字出现的次数是: "<<endl;
for(i=0;i<9;++i)
cout<<"\'"<<i<<"\'---"<<a[i]<<endl;
return 0;
}
统计每一个字母出现的个数(提示:没有必要设26个或52个变量)
统计52个变量,设置两个数组upper[26]和lower[26],分别存储每一个大写和小写字母出现的个数。其余类似上面的程序……(不能再写参考解答了,否则高手们又要拍砖了,看到这里,还指望参考,也真说不下去了)