题目2:用指针的方法对字符串排序并输出。要求输入一个字符串,然后根据字符在ASCII编号大小,按照升序排列。 例如,输入“bdca”,输出“abcd”。
时间: 2024-12-22 17:12:17 浏览: 9
题目2的解决方案可以采用C语言中的字符数组和指针技巧来实现。首先,我们需要读取用户输入的字符串,然后创建一个临时数组,将字符串中的字符复制到这个数组中。接着,我们可以使用两个指针,一个指向原始数组的起始位置,另一个从头开始比较。如果当前字符比下一个字符大,则交换它们的位置。通过逐个遍历数组并进行这种比较和交换,直到整个数组都被处理过一次,此时数组就会按ASCII值升序排列。
以下是简单的C代码实现:
```c
#include <stdio.h>
#include <string.h>
void sort(char *str) {
int len = strlen(str);
char temp;
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 - i; j++) {
if (str[j] > str[j + 1]) {
// 交换字符
temp = str[j];
str[j] = str[j + 1];
str[j + 1] = temp;
}
}
}
}
int main() {
char input[100];
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin); // 读取输入
input[strcspn(input, "\n")] = '\0'; // 去除换行符
sort(input);
printf("排序后的字符串: %s\n", input);
return 0;
}
```
当你运行此程序并输入"bdca"时,输出将会是"abcd"。
阅读全文