c语言 输入一个长度不超过 100 的字符串,删除串中的重复字符.

#include <stdio.h>
#include <string.h>
int main ()
{
int i,j,k,t;
char a[100];
gets(a);
k=strlen(a);
for(i=0;i<k;i++)
{
for(j=1;j<k-i;j++)
{
if(a[i]==a[j])
{
for(t=i;t<k;t++)
{
a[t]=a[t+1];
}
j--;
k--;
}
}
}
for(i=0;a[i]!=0;i++)
{
printf("%c",a[i]);
}
printf("\n");
}
帮我看看这个程序哪里有问题吧,请把注释也写下来,谢谢

#include <stdio.h>
int main () 
 { 
char s[101]; 
int i,j,k; 
gets(s); 
for(i=0;s[i];i++) 

for(j=k=i+1;s[j];j++) 
if(s[j]!=s[i]) 
s[k++]=s[j]; 
s[k]='\0'; 
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-02-19
for(i=0;i<k;i++)
{
for(j=1;j<k-i;j++)
{
if(a[i]==a[j]&&j!=i) //两者不是同一个字符
{
for(t=i;t<k;t++)
{
a[t]=a[t+1];
}
j--;
k--;
i--; //确保把所有重复的删完,所以退回重新判断
}
}
}追问

第一个注释有点没看明白,为什么不能使同一个字符?

追答

a[i]的a[j]相同有可能是因为i等于j,而这不是重复,你得去掉这种可能性

本回答被提问者采纳

c语言 输入一个长度不超过 100 的字符串,删除串中的重复字符.
include <stdio.h>int main () { char s[101]; int i,j,k; gets(s); for(i=0;s[i];i++) { for(j=k=i+1;s[j];j++) if(s[j]!=s[i]) s[k++]=s[j]; s[k]='\\0'; }

怎样用c语言编写删除重复字符的程序
程序的基本思路是把输入的字符串放到a[100]字符组中,然后把a[100]中所有不重复的字符添加到b[100]中,间接完成对字符串中的重复字符的删除 include void main(){ char a[100],b[100];\/\/定义两个字符组,a[100]用来接收输入的字符串,b[100]用来存储不重复的字符 int pa=0,pb=0,i,flag;...

求C语言代码,删除字符串中重复字符
c=*r; *r=*p; *p=c;} } \/\/冒泡排序的代码 printf("结果字符串为:%s\\n",str);for(p=str;*p;p++){ for(q=p+1;*p==*q;q++);strcpy(p+1, q);} \/\/删除重复字符的代码 printf("结果字符串为:%s\\n",str);} -- 方法二:char *delete_adjacent_char1(char *str){ if...

C语言 输入一个字符串 去掉重复的字符,输出无重复的
#include<stdio.h>int main(){ char str[100]="";\/\/输入字符串,自己设置长度 char out[100]=""; int letter[127]; int k=127,m=0; while(k--)letter[k]=-1; puts("input a string:"); gets(str); for(k=0;k<100;k++) letter[str[k]]++; for(k=0;k<100;k++) if(letter[str[k...

...字符串(长度小于等于100),要求输出没有重复字符的最长的子串。_百度...
= s2[i]) break; } return i;}int main(){ string str; cin >> str; vector<string> strs; for (int i = 0; i < str.size(); ++i) { strs.push_back(str.substr(i)); } sort(strs.begin(),strs.end()); int maxlen = 0; st...

C语言编程:从键盘输入一个有空格的字符串,删除所有重复字符,按字符升 ...
int main(int argc,char *argv[]){ char a[101],*p,*px,t;printf("Input a string...\\n");for(p=a,t=0;t<100;t++)\/\/输入字符串 if((*(p+t)=getchar())=='\\n')break;(p+t)='\\0';for(p=a;*p;p++)\/\/排序 for(px=p+1;*px;px++)if(*p>*px){ t=*p;p=*px...

c语言字符串怎么去除重复的字符
程序的基本思路是把输入漏猜的字符串放到a[100]字符组中,然后把a[100]中所有不重复的字符添加到b[100]中,间接完成对字符串中的重复字符的删除

C语言编写一个函数,将字符串中连续重复出现的字符去除
C语言自定义函数,一次性去除连续重复字符,参考代码如下:include<stdio.h> char *fun(char *str){ int i=1,j=0;if(str==NULL)return NULL;if(str[0]==0)return str;while(str[i]!=0)if(str[j]!=str[i])str[++j]=str[i++];else ++i;str[j+1]=0;return str;} int main(...

C语言中删除字符串中的重复字符,然后输出新的字符串
include <stdio.h>#include <string.h>int main(){ char c,str[80]; int i=0,j,k,len; printf("input:"); gets(str); len=strlen(str); c=str[i]; while(c!='\\0') { for(j=i+1;str[j]!='\\0';j++) { if(str[j]==c) { for...

C语言:从键盘输入一个不超过100个字符的字符串,其中字符串只包括字母...
1、首先需要打开编程软件。2、输入以下程序:#include <stdio.h>int main(){ char str[40]; scanf("%s",&str); printf("%s",str); return 0;}。3、然后按F5运行程序。4、然后输入想要输入的字符串。5、按回车键,就会弹出你输入的字符串。6、注意字符串的大小,改变中括号中的数字改变输入...

相似回答