C语言统计一个字符串(包含空格)中字母的种类(不是个数)
写了一个小程序来通过输入一个字符串后,统计26个字母中出现了几种。
例如:输入juue 输入3输入abcd efglmn输出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;}