输入两个字符串a和b,将b串中的最大字符插入到a串中最小字符后面。

本文介绍了一个C语言程序,通过输入两个字符串,找到第一个字符串中的最小字符并将其后面的字符向后移动,同时将第二个字符串的最大ASCII码字符插入到第一个字符串的最小字符后面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
#include <string.h>
int main(void)
{
    /*********Begin*********/
    char arr1[100]={0}, arr2[100], ch;
    int i = 0,j,k,l, flag, n = 0,ret1, ret2, tmp1, tmp2, col;
    scanf("%s", arr1);//输入两串字符
    scanf("%s", arr2);
    ret2 = strlen(arr2);//测量长度,包括‘/0’
    ret1 = strlen(arr1);
    tmp2 = arr2[0];
    for (i = 0; i < ret2; i++)
    {
        //找出字符串2中ASCLL码值最大的字符
        if (tmp2 < arr2[i])
        {
            tmp2 = arr2[i];
        }
    }
    tmp1 = arr1[0];
    col = 0;
    flag = 0;
    for (j = 0; j < ret1-1; j++)//0,ret有ret个数,要-1除去‘/0’
    {
        //找出字符串1最小的字符
        if (tmp1 > arr1[j])
        {
            tmp1 = arr1[j];
            col = j;//col标记最小字符下标
        }
    }
    for (k = ret1;k> col; k--)
    {
        //将字符串1最小值后面的字符串,都往后挪一个空间
        /*printf("%c0", arr1[k]);*/
         arr1[k + 1]=arr1[k];
 
    }
    arr1[col+1] = tmp2;//将2中最大的字符挪入最小字符后面
    for (l = 0; l <= ret1+2; l++)
    {
        printf("%c", arr1[l]);
    }
    /*********End**********/ 
    return 0;
}

新手上路,大佬请指教

假设你需要在两个字符串 `a` `b` 中找到最小字符最大字符,然后将 `b` 字中的最大字符插入到 `a` 字符串最小字符之后,你可以编写如下的C语言代码: ```c #include <stdio.h> #include <string.h> #include <ctype.h> // 用于比较字符 // 函数声明 void insertMaxChar(char *a, char *b); int main() { char a[] = "example"; // 假设a是第一个字符串 char b[] = "zxywvut"; // 假设b是第二个字符串 printf("Before insertion: %s\n", a); insertMaxChar(a, b); printf("After insertion: %s\n", a); return 0; } // 定义函数,查找并插入字符 void insertMaxChar(char *a, char *b) { int min_idx = -1, max_idx = -1; // 初始化索引为-1表示未找到 for (int i = 0; b[i]; ++i) { // 遍历b,找到最大最小字符的索引 if (min_idx == -1 || b[i] < a[min_idx]) { min_idx = i; } if (max_idx == -1 || b[i] > a[max_idx]) { max_idx = i; } } if (min_idx != -1 && max_idx != -1) { // 将b中的最大字符插入到a的最小字符后面 a[min_idx + strlen(a)] = b[max_idx]; a[min_idx + strlen(a) + 1] = '\0'; // 更新字符串的终止符 } else { printf("No characters to insert or both strings are empty.\n"); } } ``` 在这个代码中,我们首先检查两个字符串是否都有内容。然后遍历 `b`,找到最小最大字符的索引。最后,将 `b` 的最大字符插入到 `a` 的最小字符后面。 注意这个示例假设输入字符串中不存在相等的最大最小字符,如果存在这样的情况,你需要调整逻辑来处理。同时,此代码假设 `a` `b` 的长度足够容纳额外的字符。如果它们的大小有限制,需要先处理或扩展数组。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清欢.598

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值