gpt4 book ai didi

无法将 strcmp 的参数 1 从 char 转换为 const char

转载 作者:行者123 更新时间:2023-11-30 15:30:45 25 4
gpt4 key购买 nike

我刚刚开始在c 中使用指针。我想通过在命令提示符中输入字符串来对字符串进行排序。

当我尝试实现它时,出现此错误:

'strcmp' : cannot convert parameter 1 from 'char' to 'const char *'

您能指导我并告诉我如何使用更少的指针和更多的数组来编写代码吗?

char *sort(char *sortIt)
{
char *p =sortIt;
//p = (char*)calloc(sizeof(char));
char temp[3];
int len = strlen(sortIt);
for(int i=0;i<len;i++)
{
for(int j=i+1;j<len;j++)
{
if(strcmp(p[i],p[j])>0)
{
strcpy(temp,p[i]);
strcpy(p[i],p[j]);
strcpy(p[j],temp);
}
}
}

for(int ij=0;ij<len;ij++)
printf("%s", p[ij]);
}

int main(char argc, char **argv)
{
char *p=argv[1];

sort(p);
}

最佳答案

在 C 语言中,字符串表示以 null 结尾的字符串。因此大多数 C 库函数都利用了这一点。例如,strcmpstrcpy

所以你的代码在调用 strcmp(p[i],p[j])strcpy(temp,p[i]) 时是错误的,因为 strcmpstrcpy 处理字符串而不是字符,并且p[i]是一个字符。

要在 C 语言中比较字符,只需使用 if (p[i] > p[j]) ...。要复制字符,您只需 char c = p[j];

关于无法将 strcmp 的参数 1 从 char 转换为 const char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25416950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com