700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C语言统计一个字符串(包含空格)中字母的种类(不是个数)

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

时间:2022-09-04 00:54:10

相关推荐

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

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;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。