连接两个字符串并丢弃重叠

标签 c c-strings

我需要在 C 中构建一个函数,它接收两个字符串 str1 和 str2 并返回一个串联 str1 和 str2 的字符串,但我需要丢弃 str1 的最后一个元素,这些元素等于 str2 的第一个元素.

示例1:

str1 = ccabcc
str2 = ccbabd
result : ccabccbabd

示例2:

str1 = abbcbf
str2 = ab
Result : abbcbfab

有时没有重叠。

最佳答案

这个问题是微不足道的恕我直言。就我个人而言,我会选择这样的东西(它是伪代码):

function(str1,str2)
int j = 0
int lstr1 = lenght of str 1
int lstr2 = lenght of str 2
while(true)  
  if(str1[lstr1 - j] == str2[j])
    j++ 
 else
   break
 return str1 + str2[j to end of string]

如果我没有犯逻辑错误,您的代码应该看起来像是比较 str 1 的结尾与 str 2 的开头并递增的内容。另外,我的伪代码没有考虑字符串长度和潜在的溢出错误。

关于连接两个字符串并丢弃重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31678039/

相关文章:

c - 如何使用 C 中管道的信息输出到文件?

c - strptime 如何处理它读取/转换的信息?

清除换行符后的输入行

c - C 中每个数据包都有 TTL 的数据包队列的最佳收集类型是什么

c - 斐波那契字母

c - 如何在数组中添加值并将其显示为一个字符串?

c - C 64 位机器中字符串的大小

c++ - CString回文测试

C++模板C字符串参数

c - 这段代码我哪里出错了