Hzu挑战自我


私信TA

用户名:gxhzxyjsj

访问量:98836

签 名:

2024终究会过去,期待2025!

等  级
排  名 8
经  验 27865
参赛次数 67
文章发表 157
年  龄 0
在职情况 教师
学  校 贺州学院
专  业 软件工程

  自我简介:

弱鸡一个,继续努力!

解题思路:定义一个字符串数组存放单词,一边存放,一边统计,并统计单词的数量。

注意事项:当存放单词时,先跟前面的比较是否有该单词,没有则把该单词存放到字符串数组中。

参考代码:

#include <stdio.h>
#include <string.h>
int fun(char *a)
{
	int i,j,k,n;
	char temp[30];
	char s[100][30];
	while(*a==' ') a++; //去掉前面的空格
	j=0; k=0;
	for(i=0;a[i]!='\0';i++)
	{
		if( a[i]!=' ' ) //当前是字母,则保存到字符串中
			temp[j++]=a[i];
		if( a[i]!=' ' && ( a[i+1]==' ' || a[i+1]=='\0') ) //遇到空格,或者结束标志
		{
			temp[j]='\0'; //当前单词统计结束,加上字符串结束标志
			j=0;
			if(k==0) //如果是第一个,直接保存
				strcpy(s[k++],temp);
			else //不是第一个,跟前面的比较
			{
				for(n=0;n<k;n++)
				if(strcmp(s[n],temp)==0) break;
				if(n==k) //找不到该单词,则把该单词存入数组s中
				strcpy(s[k++],temp);
			}
		}
	}
	return k;
}
int main()
{
	char a[100];
	int n;
	gets(a);
	n=fun(a);
	printf("%d",n);
	return 0;
}


 

0.0分

6 人评分

  评论区

  • «
  • »