#include <stdio.h> #include<malloc.h> #include<string.h> //计算字符串中含有的不同字符的个数。相同的算一个 //如果我把重复的都去掉呢?剩下的不就是不同的个数了么 int main() { char *str=(char*)malloc(500*sizeof(char)); scanf("%s",str); int i,cnt=0; int len=strlen(str); for(i=0;i<len;i++) { for(int j=i+1;j<len;j++) { if(str[i]==str[j]) { for(int k=j;k<len-1;k++) str[k]=str[k+1]; j--; len--; } } } printf("%d\n",len); }
计算字符串中含有的不同字符的个数。相同的算一个,我的思路就是
如果我把重复的都去掉呢?剩下的不就是不同的个数了么?
所以就按照这个思路走了一遍一次就出来了!
附上删除数组重复元素代码:
for(i=0;i<len;i++)
{
for(int j=i+1;j<len;j++)
{
if(str[i]==str[j])
{
for(int k=j;k<len-1;k++)
str[k]=str[k+1];
j--;
len--;
}
}