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;
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值