字符数组——字符插入

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

样例输入:
MynameisAmy
MynameisJane
样例输出:
MynameisAymy

执果索因,我们的思路如下:输出的时候,把a这个数组共分为两部分,分界点是他的最小值这个点,先输出最小值之前的部分,然后紧接着输出在b字符串中找到的最大字符,紧接着输出a字符串后面的部分

因此我们需要分别找到两个字符串中分别对应的最大字符和最小字符,我们可以直接用循环遍历的方法。我们应该注意的是,我们不仅要找到这两个字符本身,更重要的是找到这两个字符在各自的字符数组中对应第i个元素的这个i,并分别用别的变量max和min记住这两个位置,因为这是我们用for循环输出的分界点。

代码实现如下

#include <stdio.h>
#include <string.h>
int main(void)
{
 char a[100],b[100];
 scanf("%s",a);
 scanf("%s",b);//输入两个字符串
 int m,n,max,min=0;
//注意要先输入字符串再用strlen去计算他的大小
 m=strlen(a);
 n=strlen(b);//用strlen找到两个循环遍历的终点
for(int i=0;i<m;i++)
{
   if(a[i]<a[min])
   {
       min=i;//记录a中最小字符的位置,作为最终输出的分界点
   }
}
for(int i=0;i<n;i++)
{
    if(b[i]>b[max])
    {
        max=i;//记录b中最大字符的位置,最终把b[amx]紧跟着a的最小字符输出
    }
}
for(int i=0;i<=min;i++)//最终的输出
printf("%c",a[i]);
printf("%c",b[max]);
for(int i=min+1;i<m;i++)
printf("%c",a[i]);
    return 0;
}

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值