#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--;

}

}