为了解决这个问题,我们首先需要定义一个合并后的字符串的存储空间。在C语言中,我们可以使用 malloc
函数来动态分配内存。接下来,我们将通过一个循环来交替地从两个字符串中取出字符并存储到新字符串中。如果两个字符串长度不同,我们需要确保较长的字符串的剩余部分被正确地追加到结果字符串的末尾。
char * mergeAlternately(char * word1, char * word2)
{
char* ret = malloc(sizeof(char)*(strlen(word1) + strlen(word2)) + 1);
if (ret == NULL)
{
return NULL;
}
int k = 0, i = 0, j = 0;
for (i = 0, j = 0;i < strlen(word1) && j < strlen(word2);i++, j++)
{
ret[k++] = word1[i];
ret[k++] = word2[j];
}
//判断word1和word2哪个更长
if (strlen(word1) > strlen(word2))
{
for (;i < strlen(word1);i++)
{
ret[k++] = word1[i];
}
}
else if (strlen(word1) < strlen(word2))
{
for (;j < strlen(word2);j++)
{
ret[k++] = word2[j];
}
}
ret[k] = '\0';
return ret;
}