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;
scanf("%s",a);
//输入字符串到a[100]中,用scanf读入到a[100]中会自动在a[100]中字符串结束的地方加上'\0'
for(pa=0;a[pa]!='\0';pa++)
//for循环结束的条件是a[pa]==0,也就是从a[100]字符组中读取一个字符,直到没有
{
flag=1;
//flag是个标志符,当flag==1时,说明这个字符(下句中的a[pa])是第一次出现,应该加入到b[100]中
//如果flag==0,说明这个字符(下句中的a[pa])重复了,不应该加到b[100]中
for(i=0;i<pb;i++) if(b[i]==a[pa]) flag=0;
//把a[100]中读取的字符a[pa]与b[100]中的所有字符进行比较,如果b[i]==a[pa]
//说明这个字符已经在b[100]中了,也就是重复字符了,所有将flag=0,不能加入b[100]中
//如果a[pa]与b[100]中的所有字符都不相等,说明这个字条是第一次出现,应该加到b[100]
if(flag)
{
b[pb]=a[pa];pb++;
}
//如果flag==1,则将a[pa]这个字符加入到b[100]中,然后将pb加1
}
b[pb]='\0';
//当所有的不重复的字符都加入到b[100]中时,将b[100]中字符结束的地方加'\0',也就是b[pb]='\0'
//因为字符串都是民'\0'结尾的,所以加上这句
printf("%s
",b);
//输出b[100]中的字符串,也就是删除过重复字符之后的了
}
#include<stdio.h>
int main()
{char c[128]={0},ch;
int i;
while((ch=getchar())!='
')c[ch]=1;
for(i=1;i<128;i++)
if(c[i])putchar(i);
return 0;
}
阮苑天存: 程序的基本思路是把输入的字符串放到a[100]字符组中,然后把a[100]中所有不重复的字符添加到b[100]中,间接完成对字符串中的重复字符的删除#include<stdio.h> void main() { char a[100],b[100]; //定义两个字符组,a[100]用来接收输入的字...
大余县19315349715: c语言删除重复字符 - ?
阮苑天存: 你这个代码是删除字符串中的a,不是删除重复的字符,而且用来过度的F[]没有用到,问题比较多,试下这个!Char f[27]; Int I=0,j,k=0; While(chr[i++]!=\0) {for(j=0,j<27,j++) If chr[i]==chr[j] Else f[k++]=chr[i]; } For (j=0,j<27,j++) Chr[j]=f[j]
大余县19315349715: 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() { char str[500]; gets(str); puts(fun(str)); return 0; }
大余县19315349715: C语言 输入一个字符串 去掉重复的字符,输出无重复的 - ?
阮苑天存: #include<stdio.h>#include<string.h> main() {int i,a[127]={0}; char s[100]; printf("Enter a string:\n"); gets(s); for(i=0;i<strlen(s);i++) if(a[(int)s[i]]==0) {a[(int)s[i]]=1; printf("%c",s[i]);} printf("\n"); }
大余县19315349715: 怎样用c语言编写删除重复字符的程序 - ?
阮苑天存: 如果是简单的字符串判断,就蜗牛*赤焰 的方法就可以了~~~ 就如蜗牛*赤焰提到的如果字符串中含有判断的字符就会有点麻烦了,这时候可以试一下有一个标志位来判断,标志输入的字符是否重复的,如下面的程序:(这样会比较麻烦,下面的...
大余县19315349715: c语言 在字符串中删除与某字符相同的字符 急! - ?
阮苑天存: scanf_s("%s", a); printf("Input a character : ");改为:scanf_s("%s", a); getchar(); printf("Input a character : ");因为当把a字符串输完后,你会按回车键,但回车键也算一个字符.它被读入到了字符word中.
大余县19315349715: 求C语言代码,删除字符串中重复字符 - ?
阮苑天存: #include #include int main() { std::string str = "aabbcc"; std::cout << "Before: " << str << std::endl; str.erase(std::unique(str.begin(), str.end()), str.end()); std::cout << "After: " << str << std::endl; return 0; }
大余县19315349715: 如何用C语言删除一个字符串中的相同字符? 写主要部分哈!非常感谢! - ?
阮苑天存: for(i=0;i<N-1;i++) for(j=i+1;j<N;j++) if(a[j]==a[i]) a[j]='^'; m=1; for(i=1;i<N;i++) if(a[i]!='^') a[m++]=a[i]; a[m]='\0'; 思路,找到每一个字符后面和它相同的字符,换为一个特殊字符.然后再把特殊字符去掉.记得新串要结束.
大余县19315349715: c语言,删除字符串中的重复字符. - ?
阮苑天存: 1)肯定要加return j,因为 int fun(int a[], int n)函数完成的功能是把无重复的数放到数组0到j. 2)图片说明如下:
大余县19315349715: 纠错:C语言:删除重复字符. - ?
阮苑天存: 没注释, 还不如重新写一个#include #include int main() { char Letter[80]; //用于接收输入字符串int result[128]={0}; //相当于一张空的ASCII码表gets(Letter);int size=strlen(Letter); int i,j=0; for(i=0;i { //字符串中的每个字符在空ASCII码表中打勾...