C语言统计一个字符串(包含空格)中字母的种类(不是个数)

C语言统计一个字符串(包含空格)中字母的种类(不是个数)

写了一个小程序来通过输入一个字符串后,统计26个字母中出现了几种。

例如:输入juue 
      输入3
      输入abcd  efg      lmn
      输出10

思路简述
先用一个数组将26个字母进行保存,然后将输入烦人字符串中的每一个元素与这26个字母对比,看时候有重复。第一次出现重复时将保存26个元素的数组中对应的元素赋值为空字符(或者其他不适字母的字符),然后让标记值加一。采用循环遍历每一个输入字符数组的元素。最后的标记值就是答案。

易错提醒
一开始在读取字符串时采用的是scanf();这种方式,但是这种方式只能读取连续的字符串,中间不能有空格。 因为scanf(); 在读取时遇到空格会停止。所以应该采用gets();的读法,

下面是程序代码

#include <stdio.h>
#include <string.h>//使用strlen()函数,获取字符数组长度
int main()
{
	char dict[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
	char str[1000];
	gets(str);
	int len, i, j, flag=0;//flag是标记值

	len=strlen(str);
	for(i=0;i<len;++i)
	{
		for(j=0;j<20;++j)
		{
			if((str[i] == dict[j]) && ( str[i] != ' '))
			{
				dict[j]='0';
				flag+=1;
				// continue;
			}
		}
	}

	printf("%d\n",flag);
	return 0;
}
发布了22 篇原创文章 · 获赞 39 · 访问量 4039

猜你喜欢

转载自blog.csdn.net/weixin_44895666/article/details/102657056