#include <stdio.h>
#include <string.h>
int main(){
void change(char *,char *);
char a[]="you";
char b[]="love";
char c[]="l";
if(strcmp(a,b)>0)change(a,b);
if(strcmp(a,c)>0)change(a,c);
if(strcmp(b,c)>0)change(b,c);
printf("%s%s%s",a,b,c);
return 0;
}
void change(char *p1,char *p2){
char p[50];
strcpy(p,p1);
strcpy(p1,p2);
strcpy(p2,p);
}
输出结果为:l love 为什么少了you???
函数申明没有问题,只是这种写法有些老,不建议这么写。
char a[]="you";
char b[]="love";
char c[]="l";
这里字符串的长度是固定的,a是4,b是5,c是2,当你change的时候,c容纳不下a或者b,b容纳不下a
你可以
char a[5]="you";
char b[]="love";
char c[5]="l";