1.统计字符
2.统计单词
1.统计字符:统计一个给定字符串中指定的字符出现的次数,题目来源:牛客网
题目描述
输出示例:
题目分析
(1)读到“#”时输入结束,使用break语句;
(2)定义两个字符数组,使用gets()读入;
(3)因为要统计第一行中字符串中的每个字符在第2行中出现的次数,故for循环遍历第一行中的每个字符,然后依次和第2行中的每个字符比较;
(4)定义一个数组,存储每个字符出现的次数;
代码:
#include<iostream>
#include<string.h>
using namespace std;
int main(){
char a[5],b[80];
while(gets(a)){
int count[5]={0};
if(a[0]=='#'){
break;
}
gets(b);
for(int i=0;i<strlen(a);i++){
for(int j=0;j<strlen(b);j++){
if(a[i]==b[j]){
count[i]++;
}
}
}
for(int k=0;k<strlen(a);k++){
printf("%c %d\n",a[k],count[k]);
}
}
return 0;
}
代码分析:
(1)注意count[i]数组用来存储每个字符出现的次数
if(a[i]==b[j]){
count[i]++;
}
2.统计单词:统计每个单词含有多少个字符
题目描述:
题目分析:
(1)定义一个字符数组,用来存储一行文字;
(2)使用if语句判断,判断字符是否为'.',判断是否有空格;
(3)不需要使用一个数组存储每个单词包含的字母个数,在遇到空格或者'.'时直接输出即可,然后将计数的变量重新置为0,记录下一个单词包含的字母个数
代码:
#include<iostream>
#include<string.h>
using namespace std;
int main(){
char str[100];
while(gets(str)){
int t=0,count=0;
while(str[t]!='\0'){
if(str[t]=='.'){
printf("%d",count);
}
if(str[t]==' '){
printf("%d ",count);
count=0;
}
if(str[t]!=' '){
count++;
}
t++;
}
}
return 0;
}
(1)while循环那里,也可以用for循环来表示
for(t=0;t<strlen(str);t++){
}
(2)if判断时,如果遇到空格,输出count的值,然后要注意将count置为0,记录下一个单词;
if(str[t]==' '){
printf("%d ",count);
count=0;
}