编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符. C语言问题

#include<stdio.h>
#include<string.h>
int main()
{
char str[80],temp[80];
int i,j;
gets(str);
for(i=0;i<80;i++)
str[i]=getchar( );
{ for(j=0;j<80;j++)
if((str[i]!=str[j])&&(i!=j))
printf("%c",str[i]);
}
for(i=0;i<80;i++)
for(j=0;j<80;j++)
if(strcmp(str[j],str[j+1])>0)
{ strcpy(temp,str[j]);
strcpy(str[j],str[j+1]);
strcpy(str[j+1],temp);
}
for(i=0;i<80;i++)
printf("%s",str[i]);
return 0;
}

error C2664: 'strcmp' : cannot convert parameter 1 from 'char' to 'const char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast

怎么回事

第1个回答  推荐于2016-03-16
int strcmp(const char *s1,const char *s2);
这个传的是指针,不是字符追问

那我应该怎么修改?现在还没学指针

追答

if(strcmp(str[j],str[j+1])>0)

换成if(strcmp(str+j,str+j+1)>0)

如果你逻辑没问题的话

本回答被提问者和网友采纳
相似回答