题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。

简介: 题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。

题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。

代码如下所示:

#include <stdio.h>
void fun(char* p)
{
    char   max, * q;   int   i = 0;
    q = NULL;
    max = p[i];//假设p[0]是最大值
    while (p[i] != 0)//游历实参的数组元素
    {
        if (max < p[i])//该if语句的作用是找出该字符数组里面ASCII码最大的元素
        {
            max = p[i];
            q = p + i;
        }
        i++;
    }
    while (q >p)//将ASCII码最大字符前面的字符在位置上进行调整
    {
        *q = *(q - 1);//将ASCII码最大字符前面的字符统一向后面移动一位,确保第一个位置是为ASCII码最大的元素保留的
        q--;
    }
    p[0] = max;//ASCII码最大的元素即被排在最前面
}
main()
{
    char   str[80];
    printf("Enter a string:  ");
    gets(str);
    printf("\nThe original string:      ");
    puts(str);
    fun(str);
    printf("\nThe string after moving:  ");
    puts(str); printf("\n\n");
}

输出结果如下所示:

相关文章
|
4月前
|
存储 Java 数据处理
|
3月前
|
C语言 索引 Python
利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
85 4
|
6月前
|
Java
JAVA工具类匹配重复或者连续的字符和符号
JAVA工具类匹配重复或者连续的字符和符号
|
7月前
|
索引 容器
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
|
7月前
字符串,每个里面包含0-N个数字,如3,8,2,编写函数,将两个这样的字符串合并,并且输出的字符串里面没有重复的数字,并从大到小排列.
字符串,每个里面包含0-N个数字,如3,8,2,编写函数,将两个这样的字符串合并,并且输出的字符串里面没有重复的数字,并从大到小排列.
38 0
|
7月前
|
C++ 索引
字符串中的第一个唯一字符(C++)
字符串中的第一个唯一字符(C++)
63 0
定义一个长度为10的整型数组,循环输入10个整数。 然后将输入一个整数,查找此整数,找到后输出下标,没找到给出提示。
定义一个长度为10的整型数组,循环输入10个整数。 然后将输入一个整数,查找此整数,找到后输出下标,没找到给出提示。
222 0
|
索引
字符串中的第一个唯一字符
字符串中的第一个唯一字符
76 0
|
C语言
查找某字符串出现的位置,并且输出该第一个字母所在的位
查找某字符串出现的位置,并且输出该第一个字母所在的位
138 0
查找某字符串出现的位置,并且输出该第一个字母所在的位
|
测试技术
字符串中有多少个不重复的字符并按由前到后的顺序输出一个新的字符串和该字符串长度的整数
字符串中有多少个不重复的字符并按由前到后的顺序输出一个新的字符串和该字符串长度的整数
94 0

热门文章

最新文章