在主函数中输入10个字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。要求用行指针实现。
时间: 2024-02-11 08:04:01 浏览: 67
好的,这是一个需要用到指针和字符串的排序问题,我可以帮你解答。
下面是一个示例代码,你可以参考一下:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
#define STR_NUM 10
void sortStrings(char* strings[], int num) {
// 冒泡排序
for (int i = 0; i < num - 1; i++) {
for (int j = 0; j < num - i - 1; j++) {
if (strcmp(strings[j], strings[j + 1]) > 0) {
char temp[MAX_LEN];
strcpy(temp, strings[j]);
strcpy(strings[j], strings[j + 1]);
strcpy(strings[j + 1], temp);
}
}
}
}
int main() {
char strings[STR_NUM][MAX_LEN]; // 字符串数组
char* strPtr[STR_NUM]; // 字符串指针数组
// 输入字符串
for (int i = 0; i < STR_NUM; i++) {
printf("请输入第 %d 个字符串:", i + 1);
fgets(strings[i], MAX_LEN, stdin);
strings[i][strlen(strings[i]) - 1] = '\0'; // 去掉字符串末尾的换行符
strPtr[i] = strings[i]; // 将字符串指针指向对应的字符串数组元素
}
// 排序
sortStrings(strPtr, STR_NUM);
// 输出排序后的字符串
printf("排序后的字符串为:\n");
for (int i = 0; i < STR_NUM; i++) {
printf("%s\n", strPtr[i]);
}
return 0;
}
```
这个程序中,我们首先定义了一个字符串数组 `strings` 和一个字符串指针数组 `strPtr`。我们通过 `fgets` 函数从标准输入中逐行读入字符串,并将其存储在 `strings` 数组中。注意,在存储字符串前,我们需要去掉字符串末尾的换行符,并将 `strPtr` 中的指针指向对应的 `strings` 数组元素。
接着,我们调用 `sortStrings` 函数对 `strPtr` 数组中的字符串进行排序。这里使用的是冒泡排序算法。
最后,在主函数中输出排序后的字符串。
希望这个示例代码可以帮助到你。
阅读全文
相关推荐

















