首页 > 其他分享 >6-3 交叉连接字符串PTA函数题

6-3 交叉连接字符串PTA函数题

时间:2024-12-31 16:02:44浏览次数:3  
标签:src2 交叉 ++ dst 样例 PTA char src1 字符串

本题要求实现一个函数,可将两个字符串交叉连接。连接方法如下:假设有两个字符串str1和str2,str2的第i个字符插入到原str1的第i个字符后,如果str2比str1(假定str1的长度为L1)长,则str2的第L1个字符开始到str2结尾的所有字符按在str2中的顺序放在新生成的str1后。

函数接口定义:

void strXcat(char *dst,char *src1,char *src2);

其中 dstsrc1src2都是用户传入的参数,分别用于存放主调函数中新生成字符串、源字符串1和源字符串2。

裁判测试程序样例:

#include <stdio.h>
#include <string.h>
#define NLEN 128 
void strXcat(char *dst,char *src1,char *src2);
int main(void)
{
    char srcStr1[NLEN],srcStr2[NLEN];
    char dstStr[2*NLEN];
    gets(srcStr1);
    gets(srcStr2);
    strXcat(dstStr,srcStr1,srcStr2);
    if(strlen(dstStr)==0)
        printf("result:NULL\n");
    else
      printf("result:%s\n",dstStr);     
    return 0;
}

/* 请在这里填写答案 */

输入样例1:

abcd
efgh

输出样例1:

result:aebfcgdh

输入样例2:

abcde
fghi

输出样例2:

result:afbgchdie

输入样例3:

abc
defgh

输出样例3:

result:adbecfgh

 参考代码一(数组)

void strXcat(char *dst,char *src1,char *src2)
{
int i=0,j=0,k=0;
    while(src1[i]!='\0'&&src2[j]!='\0')
    {
        dst[k++]=src1[i++];
        dst[k++]=src2[j++];
    }
    while(src1[i]!='\0')
        dst[k++]=src1[i++];
    while(src2[j]!='\0')
        dst[k++]=src2[j++];
    dst[k]='\0';//一定要最后加上这个换行符,因为前面都是一到换行符就停止循环,新的字符串最后没有换行符就会导致除了输入的两行字符串连接后,后面还会有乱码
}

 参考代码二(指针)

void strXcat(char *dst,char *src1,char *src2)
{
    while(*src1!='\0'&&*src2!='\0')
    {
        *dst++=*src1++;
        *dst++=*src2++;
    }
    while(*src1!='\0')
        *dst++=*src1++;
    while(*src2!='\0')
        *dst++=*src2++;
    *dst='\0';
}

 参考代码三(运用字符串长度判断)

void strXcat(char *dst,char *src1,char *src2)
{
    int i=0,j=0;
    int a=strlen(src1);
    int b=strlen(src2);
    while(i<a&&i<b)
    {
        dst[j]=src1[i];
        j++;
        dst[j]=src2[i];
        j++;
        i++;
    }
    while(i<a)
    {
    dst[j]=src1[i];
        i++;j++;
    }
    while(i<b)
    {
    dst[j]=src2[i];
        i++;j++;
    }
    dst[j]='\0';
}

标签:src2,交叉,++,dst,样例,PTA,char,src1,字符串
From: https://blog.csdn.net/2401_87796961/article/details/144819517

相关文章

  • LeetCode算法题 (比较含退格的字符串)Day9!!!C/C++
    https://leetcode.cn/problems/backspace-string-compare/description/一、题目描述给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。二、相关知识点了解   ......
  • Kubernetes iptables与IPVS 负载均衡模式对比
    Kubernetes可以使用iptables或IPVS作为其服务负载均衡模式。两者有各自的特点和适用场景。以下是对它们的比较和选择建议:1.iptables模式特点基于规则匹配:iptables是基于链表结构的包过滤和NAT实现方式。每个请求都会逐条匹配规则,直到找到匹配项。易用性:适合......
  • GO 学习笔记之零 (四)字符串处理集锦
    1、遍历字符串中的每个字符 2、去掉字符串前后空格strings.TrimSpace(str)3、字符串长度len(str)4、缓存方式拼接字符串var_bufferbytes.Buffer//定义缓存字符串变量_buffer.WriteString(str1)//拼接字符串_buffer.WriteString(str2[0:1])//拼接字符_buffer......
  • 使用js写一个方法对字符串进行16进制编码
    在JavaScript中,你可以使用encodeURIComponent函数配合toString方法来进行字符串的16进制编码。但是,encodeURIComponent本身并不直接支持16进制编码,所以我们需要先将字符串转换为UTF-8,然后对每个字符进行16进制编码。以下是一个简单的函数,它接受一个字符串作为输入,并返回该字符串......
  • 将复杂数据类型封装在字符串中
    希望得到一个数组或对象的字符串表示,以便存储在一个文件或数据库中。使用serialize()将变量及其值编码为一种文本形式://定义一个数组,其中包含食品名称作为键,食品数量作为值$pantry=array('sugar'=>'2lbs.','butter'=>'3sticks');//尝试以写入模式('w')打开一个名为'......
  • Vue3 中数组和字符串的处理
    原因:想要在网页文本框中输入一个整型数组,用作Set去重测试。遇到问题:网页文本框中输入的一串内容是字符串格式的,暂且称之为“数组字符串”。解决方式:先把“数组字符串”转换成“字符串数组”格式,再转换为“整型数组”格式。定义变量首先定义一些用到的变量:数组字......
  • 【Web】0基础学Web—正则、字符串验证正则、字符串替换
    0基础学Web—正则、字符串验证正则、字符串替换正则正则使用字符串验证正则string方法regexp方法字符串替换正则[]:每个[]代表一位[0-9a-zA-Z][A-z]:字母和_[^0-9]:排除0-9[\u4e00-\u9fa5]:中文元......
  • 字符函数和字符串函数
    字符函数和字符串函数1.字符分类函数需要包含头文件ctype.h2.字符转换函数tolower将参数传进去的⼤写字⺟转⼩写toupper将参数传进去的⼩写字⺟转⼤写3.strlen的使用格式为size_tstrlen(constchar*str);字符串以‘\0’作为结束标志,strlen函数返回......
  • leetcode 2606. 找到最大开销的子字符串
    2606.找到最大开销的子字符串classSolution{public:intmaximumCostSubstring(strings,stringchars,vector<int>&vals){intsize=s.size();vector<int>dp(size);autofound=chars.find(s[0]);if(found==s......
  • C12.【C++ Cont】string类字符串的创建、输入、访问和size函数
    目录1.概念2.string字符串的创建示例代码 运行结果备注 2.string字符串的输入1.cin(字符串没有空格)2.getline(可以读含有空格的字符串)示例代码1:getline传两个参数示例代码2:getline传三个参数3.size函数示例代码运行结果4.访问string类字符串示例代码 运......