#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 个 ==========
请问这个报错是什么意思?程序应该怎么改呢
ä½ å¥½ï¼ææç §ä½ ç代ç æ¹è¿äºï¼ç»æ没æ顺åºè¾åºå
追çä½ å¤å¶æç代ç ï¼ææµè¯æ¯é¡ºåºè¾åº
追é®æ¯ç±å°å°å¤§è¾åºå
å¥½å§ æè¿è¡è¿äº åæçä¸æ · æç顺åºè¾åºæ¯æ³è¦ç±å°å°å¤§è¾åº æ没æè¡¨è¾¾æ¸ æ¥
追çè¾åºæ¥æææ¯ä»å°å°å¤§ï¼ä½ çä¸æ¥ï¼
è¿æææ¯ç±å¤§å°å°å
é¾éstr1æå°åï¼
追çstr1 æå°ãããã
æäºãããå符串é½ä¸ç¥éæä¹æ¯è¾
为ä»ä¹str1æå°ï¼
请é®å符串æä¹æ¯è¾ï¼