设计一个函数来统计字符串中出现不同字符的个数
请你设计一个函数,统计一个字符串(不一定都是字母和数字字符)中出现的不同字符的个数。若字符串为"abc xabc12!",则函数返回8。特别提醒:字符串是可以为空的!
函数接口定义:
int count(char s[]);
其中,s是传入的字符串。
裁判测试程序样例:
#include <stdio.h>
int count(char s[]);
int main()
{
char string;
gets(string);
printf("%d\n", count(string));
return 0;
}
/* 你提交的答案将被嵌在这里 */
不知道该怎么做,求大佬解答!!! 本帖最后由 jhq999 于 2022-10-11 20:13 编辑
//都是手写的没上机运行
int count(char s[])//如果有汉字就复杂一些
{
char ch={0};
int i=0,count=0;
while(s)
{
if(0==ch])count+=1,ch]=1;
i+=1;
}
return count+1;
}
int count(const char s[])
{
char ch={0};
int i=0,j=0,k=0,count=0,chincount=0;
while(s);
chincount>>=1;
char (*chin)=(char(*))calloc(chincount,2);
i=0;
chincoun=0;
while(s)
{
if(s>=0)
if(0==ch])count+=1,ch]=1;
else
{
for(j=0;j<chincount;j++)
{
if(chin==s&&s==chin)break;
}
if(j==chincout)
{
chin=s,chin=s;
chincount+=1;
count+=1;
}
i+=1;
}
i+=1;
}
free(chin);
return count+1;
}
#include <stdio.h>
#include <string.h>
size_t count(const char *s) {
size_t c = {0};
for(size_t i = 0; s; ++i) {
++c[(size_t)s];
}
size_t result = 0;
for(size_t i = 0; i < 256; ++i) {
if(c) ++result;
}
return result;
}
int main(void) {
char string;
fgets(string, 1024, stdin);
*strchr(string, '\n') = '\0';
printf("%zu\n", count(string));
return 0;
}
本帖最后由 jackz007 于 2022-10-11 19:54 编辑
int count(char s[])
{
int e = {0} , k ;
for(i = 0 ; s ; i ++) e] ++ ;
for(i = k = 0 ; i < 256 ; i ++) if(e) k ++ ;
return k ;
} jhq999 发表于 2022-10-11 19:46
谢谢大佬!!! jackz007 发表于 2022-10-11 19:49
谢谢大佬!!!每次都是你帮助我,真心感谢{:5_93:} 人造人 发表于 2022-10-11 19:49
谢谢大佬!!!!{:10_288:}
页:
[1]