|  | 
 
| 
#include <stdio.h>
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  #include <string.h>
 
 void String_Delete(char str[]);
 
 int main()
 {
 char str[] = "xazsxazcqwlzxy";
 String_Delete(str);
 printf("the after:%s\n",str);
 return 0;
 }
 
 void String_Delete(char str[])
 {
 int len = strlen(str);
 int i,j,m;
 for(i=0; i<len; i++)
 {
 for(j=i+1; j<len-i; j++)
 {
 if(str[i] == str[j])
 {
 
 for(m=j; m<=len; m++)
 {
 str[m]=str[m+1];
 }
 
 j--;
 len--;
 }
 else
 continue;
 }
 //len--;
 str[len+1] = '\0';
 }
 
 }
 
 
 我的思路是这样子的:从第一个字符开始以此跟后面的字符比较,如果有相等的就将那个字符的后面开始以此往前挪动一位,但是一直有些字符删除不了 。
 
第二个for循环for(j=i+1; j<len-i; j++)改成for(j=i+1; j<len; j++)减i去掉,我知道的减去i的意思是j的循环根据j从数组哪位开始而定,假定10(0~9)位的字符串从1开始循环9-1=8次,从2开始就是9-2=7次,但是注意这里的情况是10位字符串,长度不变,但是这个题里你改变了字符串的总长度  len--;所以不可以这样写 | 
 |