算法笔记---统计一个给定字符串中指定字符出现的次数,统计每个单词有多少个字母

1.统计字符

2.统计单词

1.统计字符:统计一个给定字符串中指定的字符出现的次数,题目来源:牛客网

题目描述

算法笔记---统计一个给定字符串中指定字符出现的次数,统计每个单词有多少个字母_第1张图片

输出示例:

算法笔记---统计一个给定字符串中指定字符出现的次数,统计每个单词有多少个字母_第2张图片

题目分析

(1)读到“#”时输入结束,使用break语句;

(2)定义两个字符数组,使用gets()读入;

(3)因为要统计第一行中字符串中的每个字符在第2行中出现的次数,故for循环遍历第一行中的每个字符,然后依次和第2行中的每个字符比较;

(4)定义一个数组,存储每个字符出现的次数;

代码:

#include
#include
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

代码分析:

(1)注意count[i]数组用来存储每个字符出现的次数

if(a[i]==b[j]){
	count[i]++;
}

2.统计单词:统计每个单词含有多少个字符

题目描述:

算法笔记---统计一个给定字符串中指定字符出现的次数,统计每个单词有多少个字母_第3张图片

题目分析:

(1)定义一个字符数组,用来存储一行文字;

(2)使用if语句判断,判断字符是否为'.',判断是否有空格;

(3)不需要使用一个数组存储每个单词包含的字母个数,在遇到空格或者'.'时直接输出即可,然后将计数的变量重新置为0,记录下一个单词包含的字母个数

代码:

#include
#include
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

(2)if判断时,如果遇到空格,输出count的值,然后要注意将count置为0,记录下一个单词;

if(str[t]==' '){
	printf("%d ",count);
	count=0;
}

 

你可能感兴趣的:(算法学习)