题目描述
输入3个字符串,按从小到大的顺序输出。要求使用指针的方法进行处理。
输入
3行,每行一个用字符串。保证每个字符串的长度不超过20。
输出
按从小到大的顺序输出这3个字符串,每个字符串一行。
请注意行尾输出换行。
样例输入
China
CLOCK
deal
样例输出
CLOCK
China
deal
代码
#include <stdio.h>
#include <string.h>
void swap(char* s1, char* s2) { //交换s1, s2
char temp[20];
strcpy(temp, s1); //将s1的值复制给temp
strcpy(s1, s2);
strcpy(s2, temp);
}
int main() {
char s1[20], s2[20], s3[20];
gets(s1); //输入字符串
gets(s2);
gets(s3);
if(strcmp(s1, s2) > 0) { //比较字符串的大小
swap(s1, s2);
}
if(strcmp(s1, s3) > 0) {
swap(s1, s3);
}
if(strcmp(s2, s3) > 0) {
swap(s2, s3);
}
printf("%s\n%s\n%s\n", s1, s2, s3);
return 0;
}
结果:
注意:
- 字符串的比较不能直接使用关系运算符来比较,关系运算符只能比较字符,不能比较字符串,字符串的比较可以使用 strcmp 函数。
- 使用指针进行交换时,要注意学会使用 strcpy 函数,它也是 string 标准库里的一个函数,作用是在 strcpy(s1, s2) 中,将 s2 的值赋给 s1。这里的 s1 和 s2 都是指针。