编写函数对一个字符串, 除首、尾字符之外的其它字符按ASCII码降序排列。用c语言
时间: 2024-02-23 09:59:31 浏览: 78
可以使用冒泡排序实现,代码如下:
```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函数中调用这个函数并打印结果。
相关问题
请用C语言编写函数fun, 对长度为7个字符的字符串, 除首、尾字符外,将其余5个字符按ASCII码降序排列。 例如,原来的字符串为 CEAedca,排序后输出为 CedcEAa 。
可以的,以下是C语言编写的函数fun:
```
#include <stdio.h>
#include <string.h>
void fun(char* s) {
int len = strlen(s);
char temp;
for(int i = 1; i < len - 1; i++) {
for(int j = i + 1; j < len - 1; j++) {
if(s[i] < s[j]) {
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
printf("%s\n", s);
}
```
该函数的作用是对长度为7个字符的字符串进行排序,除首、尾字符外,将其余5个字符按ASCII码降序排列。例如,原来的字符串为 CEAedca,排序后输出为 CedcEAa。
请编写C语言函数fun, 对长度为7个字符的字符串, 除首、尾字符外,将其余5个字符按ASCII码降序排列。 例如,原来的字符串为 CEAedca,排序后输出为 CedcEAa 。
好的,以下是实现该功能的C语言函数fun的代码:
```c
#include <stdio.h>
#include <string.h>
void fun(char str[]) {
int len = strlen(str);
int i, j;
char temp;
// 冒泡排序
for (i = 1; i < len - 1; i++) {
for (j = len - 2; j >= i; j--) {
if (str[j] < str[j-1]) {
temp = str[j];
str[j] = str[j-1];
str[j-1] = temp;
}
}
}
// 输出结果
for (i = 1; i < len - 1; i++) {
printf("%c", str[i]);
}
printf("%c%c\n", str[0], str[len-1]);
}
```
函数中先使用冒泡排序算法对除首尾字符外的字符进行排序,然后再按照要求输出结果。注意在输出结果时需要先输出除首尾字符外的字符,再输出首尾字符。
希望可以帮到您!
阅读全文