int a[256];
char s[65536];
scanf("%s",s);
int i=0;
while(s[i]) a[s[i]]=1;
int count=0;
for(i=0;i<256;i++) count+=a[i];
printf("%d\n",count);
大概是这样写的,好久没有写c了,不知道语法上有没有问题
#include<stdio.h>
int main()
{
int num = 0;
char ch;
while ((ch = getchar()) != '\n')
{
if (ch <= 'z' && ch >= 'a' || ch <= 'Z' && ch >= 'A')
{
num++;
} else if (ch <= '9' && ch >= '0')
{
num++;
} else if (ch == ' ')
{
num++;
} else
{
num++;
}
}
printf("%d\n", num);
}
#include <stdio.h>
#include <string.h>
int main()
{
char str[1024];
char temp[1024];
char c;
int i,j,num;
int k = 0;
printf("请输入一个字符串:");
scanf("%[^\n]",str); //这里可以检验空格
num = 1;
i = 1;
j = strlen(str);
temp[0] = str[0];
temp[1] = '\0';
for(i;i < j;i++)
{
c = str[i];
num += 1;
for(k;k < i;k++)
{
if(c == temp[k])
{
num -= 1;
break;
}
}
temp[i] = c;
temp[i+1] = '\0';
k = 0;
}
printf("\n不重复的字符个数为:%d\n",num);
return 0;
}
讲下思路吧,先输入到数组中,计算长度初始为1,然后从第二个字符开始,输入字符串中在此字符前面的所有字符都与之比较数值,如果没有相同的,则计算长度加1。