题解 | #字符个数统计#
字符个数统计
https://www.nowcoder.com/practice/eb94f6a5b2ba49c6ac72d40b5ce95f50
解题思路:
创建0~128字符的字典,里面包含字符和字符是否出现过的标志位
lib[128][2] [x][0]存字符,[x][1]存字符是否出现过的标志位(未出现为0,出现为1)
#include <stdio.h>
#include <string.h>
int main() {
int lib[128][2]={0};
int i=0,num=0,j=0,S_num=0;
int arry[500]={'\0'};
for(i=0;i<128;i++)
{
lib[i][0]=i;
}
i=0;
while(scanf("%c",&arry[i])!=EOF)//scanf非空就继续
{
if(arry[i]=='\n')//遇到换行符就继续
{
break;
}
i++;
}
S_num=i;//接受的字符串长度
for(i=0;i<S_num;i++)
{
for(j=0;j<128;j++)
{
if(lib[j][0]==arry[i])//判断字符是否在字典中
{
if(lib[j][1]==1)//判断字符是否出现过,如果出现就跳出循环
{
break;
}
else{//字符没有出现,对应标志位置1,计数变量自增1
lib[j][1]=1;
num++;
}
}
}
}
printf("%d",num);//输出计数变量的值
return 0;
}
