有一个C语言问题,哪个大神可以帮我解答呢?小女子感激不尽,在线等哦,谢谢 20

#include<stdio.h>#include<string.h>voidOrderStr(char*p1,char*p2,char*p3){chartmp;if(s... #include<stdio.h>
#include<string.h>
void OrderStr( char *p1, char *p2, char *p3)
{
char tmp;
if(strcmp(*p1,*p2)>0)
{
tmp=*p1;
*p1=*p2;
*p2=tmp;
}
if(strcmp(*p1,*p3)>0)
{
tmp=*p1;
*p1=*p3;
*p3=tmp;
}
if(strcmp(*p2,*p3)>0)
{
tmp=*p2;
*p2=*p3;
*p3=tmp;
}
}
int main()
{
char str1[20]="I am a student";
char str2[20]="I am happy";
char str3[20]="hello";
OrderStr(str1,str2,str3);
printf("%s %s %s\n",str1,str2,str3);
return 0;
}
这是代码,目的是顺序输出主函数中的三个字符串。但运行出了问题,是下面这个:
>d:\用户目录\我的文档\visual studio 2012\projects\consoleapplication15\consoleapplication15\8-2(3).cpp(12): error C2664: “strcmp”: 不能将参数 1 从“char”转换为“const char *”
1> 从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
1>d:\用户目录\我的文档\visual studio 2012\projects\consoleapplication15\consoleapplication15\8-2(3).cpp(18): error C2664: “strcmp”: 不能将参数 1 从“char”转换为“const char *”
1> 从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
请问这个报错是什么意思?程序应该怎么改呢
展开
 我来答
IT孤鹜
2015-05-02 · TA获得超过4197个赞
知道大有可为答主
回答量:3960
采纳率:71%
帮助的人:3509万
展开全部
#include<stdio.h>
#include<string.h>
void OrderStr( char *p1, char *p2, char *p3)
{
char tmp[20];
if(strcmp(p1,p2)>0)
{
strcpy(tmp,p1);
strcpy(p1,p2);
strcpy(p2,tmp);
}
if(strcmp(p1,p3)>0)
{
strcpy(tmp,p1);
strcpy(p1,p3);
strcpy(p3,tmp);
}
if(strcmp(p2,p3)>0)
{
strcpy(tmp,p2);
strcpy(p2,p3);
strcpy(p3,tmp);
}
}
int main()
{
char str1[20]="I am a student";
char str2[20]="I am happy";
char str3[20]="hello";
OrderStr(str1,str2,str3);
printf("%s %s %s\n",str1,str2,str3);
return 0;
}
更多追问追答
追问
你好,我按照你的代码改过了,结果没有顺序输出呀
追答
你复制我的代码,我测试是顺序输出
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式