
输入一个长度不超过 100 的字符串,删除串中的重复字符,例如:输入aabbccabcacbacb,输出abc
#include<stdio.h>#include<string.h>intmain(){charstr[100];inti,j,k;for(i=0;str[i]!=0;...
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
int i,j,k;
for(i=0;str[i]!=0;i++)
gets (str);
for(k=0;k<100;k++)
for(j=k+1;str[j]!=0;j++)
{
if(str[k]==str[j])
for(j=k+1;str[j]!=0;j++)
strcpy(str[j],str[j+1]);
}
for(i=0;i<100;i++)
puts (str);
return 0;
}
为什么我的程序没有输出?
请高手解答 展开
#include<string.h>
int main()
{
char str[100];
int i,j,k;
for(i=0;str[i]!=0;i++)
gets (str);
for(k=0;k<100;k++)
for(j=k+1;str[j]!=0;j++)
{
if(str[k]==str[j])
for(j=k+1;str[j]!=0;j++)
strcpy(str[j],str[j+1]);
}
for(i=0;i<100;i++)
puts (str);
return 0;
}
为什么我的程序没有输出?
请高手解答 展开
1个回答
展开全部
首先:
strcpy(str[j],str[j+1]);
这句错了,str[j] 是 char 类型,strcpy 要求char*,因此应改成
strcpy(str+j,str+j+1);
其次:
gets 是输入一个字符串,输入一个字符 是 getc(char *c);
然后:
你整个代码都有问题!
正确代码应改成如下:你自己好好的理解一下吧
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char str[100];
char a[26];
int i;
gets(str);
for(i=0;i<26;i++){
a[i]=0;
}
for(i=0;i<strlen(str);i++){
if(a[str[i]-'a']==1){
strcpy(str+i,str+i+1);
i--;
}
a[str[i]-'a']=1;
}
puts(str);
system("pause");
return 0;
}
strcpy(str[j],str[j+1]);
这句错了,str[j] 是 char 类型,strcpy 要求char*,因此应改成
strcpy(str+j,str+j+1);
其次:
gets 是输入一个字符串,输入一个字符 是 getc(char *c);
然后:
你整个代码都有问题!
正确代码应改成如下:你自己好好的理解一下吧
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char str[100];
char a[26];
int i;
gets(str);
for(i=0;i<26;i++){
a[i]=0;
}
for(i=0;i<strlen(str);i++){
if(a[str[i]-'a']==1){
strcpy(str+i,str+i+1);
i--;
}
a[str[i]-'a']=1;
}
puts(str);
system("pause");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询