设计一个完整的C++程序,实现字符串中字符的降序排列。具体要求如下: (1)定义一个函数fun实现字符串中字符的降序排列。要求函数的参数为一个字符串。 (2)定义一个函数print实现字符串输出。要求函数的参数为一个字符数组,并用一个参数传递需要输出的字符串中字符的个数。输出时用循环语句逐个将字符数组中的各元素连续在一行内输出,各字符之间用一个逗号分隔。 (3)为了屏幕显示方便,在print函数中将空格输出为减号'-'。 (3)在主函数中定义一个字符数组,从键盘输入一行可能含有空格的字符串存入该数组。调用函数fun实现字符串的排序,再调用print函数实现字符串的输出。
时间: 2023-03-14 14:44:34 浏览: 146
答:#include <stdio.h> void fun(char str[]); // 函数声明
void print(char str[], int n); // 函数声明 int main()
{
char str[100]; // 定义字符数组
printf("请输入一行字符串:");
scanf("%[^\n]", str); // 从键盘输入一行字符串
fun(str); // 调用函数fun实现字符串的排序
print(str, strlen(str)); // 调用函数print实现字符串的输出
return 0;
} // 定义函数fun实现字符串中字符的降序排列
void fun(char str[])
{
for (int i = 0; str[i] != '\0'; i++)
{
for (int j = 0; str[j] != '\0'; j++)
{
if (str[j] < str[i])
{
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
} // 定义函数print实现字符串输出
void print(char str[], int n)
{
for (int i = 0; i < n; i++)
{
if (str[i] == ' ')
printf("-");
else
printf("%c", str[i]);
if (i != n - 1)
printf(",");
}
printf("\n");
}
阅读全文