由用户动态输入5个字符串,利用指针数组实现5个字符串的排序并输出。
时间: 2023-04-24 07:00:23 浏览: 116
可以先定义一个指针数组,用于存储用户输入的5个字符串,然后使用冒泡排序或快速排序等算法对这个指针数组进行排序,最后输出排序后的字符串即可。
具体实现步骤如下:
1. 定义一个指针数组,用于存储用户输入的5个字符串:
```
char *str[5];
```
2. 使用循环让用户输入5个字符串,并将它们存储到指针数组中:
```
for (int i = ; i < 5; i++) {
char buffer[100];
printf("请输入第%d个字符串:", i+1);
scanf("%s", buffer);
str[i] = strdup(buffer);
}
```
3. 使用冒泡排序或快速排序等算法对指针数组进行排序:
```
for (int i = ; i < 4; i++) {
for (int j = i+1; j < 5; j++) {
if (strcmp(str[i], str[j]) > ) {
char *temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
```
4. 输出排序后的字符串:
```
printf("排序后的字符串为:\n");
for (int i = ; i < 5; i++) {
printf("%s\n", str[i]);
}
```
完整代码如下:
```
#include <stdio.h>
#include <string.h>
int main() {
char *str[5];
for (int i = ; i < 5; i++) {
char buffer[100];
printf("请输入第%d个字符串:", i+1);
scanf("%s", buffer);
str[i] = strdup(buffer);
}
for (int i = ; i < 4; i++) {
for (int j = i+1; j < 5; j++) {
if (strcmp(str[i], str[j]) > ) {
char *temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
printf("排序后的字符串为:\n");
for (int i = ; i < 5; i++) {
printf("%s\n", str[i]);
}
return ;
}
```
阅读全文