编写函数对一个字符串, 除首、尾字符之外的其它字符按ASCII码降序排列。用c语言
时间: 2024-02-23 07:59:31 浏览: 29
可以使用冒泡排序实现,代码如下:
```c
#include <stdio.h>
#include <string.h>
void sortString(char *str) {
int len = strlen(str);
for (int i = 1; i < len - 1; i++) {
for (int j = i + 1; j < len - 1; j++) {
if (str[j] > str[i]) {
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
int main() {
char str[] = "hello world";
sortString(str);
printf("%s\n", str);
return 0;
}
```
这个函数接受一个字符串作为参数,对除首、尾字符之外的其它字符按ASCII码降序排列,并修改原字符串。首先获取字符串长度,然后使用两层循环对除首、尾字符之外的字符进行冒泡排序(从大到小)。最后在main函数中调用这个函数并打印结果。
相关问题
编写函数对一个字符串, 除首、尾字符之外的其它字符按ASCII码降序排列。请用C语言回答。
好的,以下是一个用C语言编写的函数,用于对一个字符串除首、尾字符之外的其它字符按ASCII码降序排列:
```c
#include <stdio.h>
#include <string.h>
void sortString(char *str) {
int len = strlen(str);
int i, j;
char temp;
// 冒泡排序
for (i = 1; i < len - 1; i++) {
for (j = i + 1; j < len - 1; j++) {
if (str[i] < str[j]) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
int main() {
char str[] = "hello world";
int len = strlen(str);
// 排序
sortString(str);
// 输出
printf("%c", str[0]);
for (int i = 1; i < len - 1; i++) {
printf("%c", str[i]);
}
printf("%c\n", str[len - 1]);
return 0;
}
```
在该代码中,我们定义了一个 `sortString()` 函数,该函数接受一个字符串作为参数。该函数使用冒泡排序对字符串除首、尾字符之外的其它字符按ASCII码降序排列。然后,在 `main()` 函数中,我们声明了一个字符串,并调用 `sortString()` 函数来对其进行排序。最后,我们输出排序后的字符串,首尾字符不变。
请使用while函数编写一个C语言程序,对字符串,除首、尾字符外,将其字符按ASCII编码数值降序排列
以下是一个使用while函数编写的C语言程序,可以对字符串进行字符按ASCII编码数值降序排列的操作:
```c
#include <stdio.h>
#include <string.h>
void sort(char str[]) {
int len = strlen(str);
int i = 1, j = len - 2;
while (i < j) {
if (str[i] < str[j]) {
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
i++;
j--;
}
}
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
sort(str);
printf("排序后的字符串为:%s\n", str);
return 0;
}
```
在这个程序中,我们首先使用了strlen函数获取了字符串的长度,然后设置了两个指针i和j,分别指向字符串的第二个字符和倒数第二个字符。接着,在while循环中,我们不断地比较并交换i和j指向的字符,直到i和j相遇为止。最后,我们输出排序后的字符串。