输入三个字符串,按由小到大的顺序输出(用指针法)这个哪里错了
swap函数只改变了指针的指向,实际上的字符串并没有发生改变
swap函数里改一下就好了
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char str1[20], str2[20], str3[20];
void swap(char* p1, char* p2);
printf("Pleaseenter threestring : \n");
gets(str1);
gets(str2);
gets(str3);
if (strcmp(str1, str2) > 0)
swap(str1, str2);
if (strcmp(str1, str3) > 0)
swap(str1, str3);
if (strcmp(str2, str3) > 0)
swap(str2, str3); printf("\n");
printf("%s \n%s \n%s \n", str1, str2, str3);
return 0;
}
void swap(char* p1, char* p2)
{
char* p = (char*)malloc(100);
*p = *p1;
*p1 = *p2;
*p2 = *p;
}