用指针方法处理 c语言编写 输入3个字符串,按由小到大的顺序输出
时间: 2025-02-22 19:33:02 浏览: 49
在C语言中,由于字符串通常是以字符数组的形式表示,我们可以使用`strcmp()`函数来比较字符串,并结合指针来实现按字典序从小到大的排序。这里有一个简单的示例:
```c
#include <stdio.h>
#include <string.h> // 引入字符串处理库
// 比较两个字符串,返回值小于0表示第一个字符串更小,大于0表示第二个字符串更大,等于0表示相等
int compareStrings(const char* str1, const char* str2) {
return strcmp(str1, str2);
}
void sortStrings(char** arr, int size) {
for (int i = 0; i < size - 1; ++i) {
for (int j = 0; j < size - i - 1; ++j) {
if (compareStrings(arr[j], arr[j+1]) > 0) {
// 交换字符串
char* temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
char* str1, *str2, *str3;
printf("请输入三个字符串,以空格分隔:");
fgets(arr, sizeof(arr), stdin); // 读取一行字符串,注意去掉换行符
char* temp = strtok(arr, " "); // 分割字符串
while (temp != NULL) {
if (str1 == NULL)
str1 = temp;
else if (str2 == NULL)
str2 = temp;
else
str3 = temp;
temp = strtok(NULL, " ");
}
sortStrings(&str1, 1); // 单个字符串不需要数组,所以传1
sortStrings(&str2, 1);
sortStrings(&str3, 1);
printf("按字典序从小到大排序后的结果是:\n");
printf("%s %s %s\n", str1, str2, str3);
return 0;
}
阅读全文
相关推荐















