题解 | #字符个数统计#
字符个数统计
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; }