输入3个字符串,按照由大到小的顺序输出,要求使用指针完成。
时间: 2024-12-23 22:17:52 浏览: 9
在C语言中,我们可以使用字符指针来处理字符串,并结合循环和比较操作来实现按字典序从大到小排序。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 比较函数,用于字符串大小的比较
int compareStrings(const char* str1, const char* str2) {
while (*str1 && *str2 && *str1 == *str2) { // 直到找到第一个不同字符或到达字符串结束
str1++;
str2++;
}
return (*str1 > *str2) ? 1 : -1; // 如果str1的大于str2,则返回1,反之返回-1
}
void sortStrings(char** arr, int count) {
for (int i = 0; i < count - 1; i++) {
for (int j = 0; j < count - i - 1; j++) {
if (compareStrings(arr[j], arr[j + 1]) > 0) {
// 交换arr[j]和arr[j+1]
char temp[100];
strcpy(temp, arr[j]);
strcpy(arr[j], arr[j + 1]);
strcpy(arr[j + 1], temp);
}
}
}
}
int main() {
char* strings[] = {"abc", "def", "xyz"};
int count = sizeof(strings) / sizeof(strings[0]);
printf("Sorted in descending order:\n");
for (int i = 0; i < count; i++) {
printf("%s\n", strings[i]);
}
return 0;
}
```
在这个例子中,`sortStrings` 函数通过两个嵌套循环遍历数组并利用 `compareStrings` 来确定是否需要交换元素。然后在 `main` 中,我们创建了一个字符串数组并调用 `sortStrings` 函数对其进行排序。
阅读全文