C语言·XDOJ练习·单词统计

C语言·XDOJ练习·单词统计

题目描述
输入字符串string[N](N≤100),各个单词以空格隔开,单词长度小于等于8,输入单词word[M](M≤8),
在string中查找出相同的单词并统计该单词出现的次数信息,单词不区分大小写,
输出单词和出现次数的信息,数据之间空一格空格。
主函数输入字符串和待统计单词,编写函数count()实现统计和信息输出

输入描述
输入一行字符以空格隔开各个单词,输入要统计的单词。

输出描述
输出单词及其出现的次数信息,数据之间空一格。

输入样例
To be or not to be is a question
to

输出样例
to 2

#include
#include
int main()
{
     
	int i=0,j=0,k=0,n=0;//循环数 
	int count=0;//对匹配次数计数 
	int num=0;//单词个数 
	int length;//单词长度 
	char s[100]={
     '0'},s0[50]={
     '0'};
	gets(s);//句子 
	gets(s0);//单词 
	/*把首字母转化为小写字母*/
	strlwr(s);
	for(i=0;i<strlen(s);i++)//遍历句子 ,以寻找首字母 
	{
     
		if(s0[0]==s[i])//如果发现单词首字母 
		{
     
			count=0;//归零 
			/*依次判断各字母是否相等*/ 
			for(k=0,n=i;k<strlen(s0)&&n<(strlen(s0)+i);k++,n++)//遍历单词 与句子片段 
			{
     
				if(s[n]!=s0[k])//如果不相等 ,中止判断
				{
     
					n=(strlen(s0)+i);
					k=strlen(s0);
				}
				else
				{
     
					count+=1;
				}
			}
			length=strlen(s0); 
			if(count==length)//如果存在匹配片段
			{
     
				if(s[n]==' '||n==strlen(s))//如果下一个字符是空格或到结尾
				{
     
					num+=1;//计数加一 
				}
				else
				{
     
					continue;//进入下一个循环继续寻找首字母或结束 
				} 
			} 
		}
	}
	for(i=0;i<length;i++)
	{
     
		printf("%c",s0[i]);
	} 
	printf(" %d",num);
	return 0;
}

你可能感兴趣的:(#C语言练习,c语言)