gpt4 book ai didi

C 程序-如何将 2 个字符串相互集成?

转载 作者:行者123 更新时间:2023-11-30 21:20:37 25 4
gpt4 key购买 nike

我知道这是一个令人困惑的标题,但基本上我有 string1 是“Hello”,string2 是“there”

我需要创建第三个字符串,将它们混合在一起,例如:Htehlelroe(加粗以便您可以更好地看到它)。

我是 C 语言新手,说实话,我什至不太确定如何开始解决这个问题。我知道肯定应该有一个 for 循环,中间可能有类似 string1[i-1] != '\0' 的东西。非常感激你的帮助!

最佳答案

不确定您为解决这个问题付出了多少努力,但这里有一个可能的解决方法:

#include <stdio.h>
#include <string.h>

int main(int argc, char **argv)
{
if(argc != 3)
{
printf("Give me two strings!");
return 1;
}

int len = strlen(argv[1]) + strlen(argv[2]);
char mixed_string[len];
char *a = argv[1];
char *b = argv[2];
int i ;
for(i = 0; i < len;)
{
if(*a)
{
mixed_string[i++] = *a++;
}

if(*b)
{
mixed_string[i++] = *b++;
}
}

mixed_string[i] = '\0';

printf("%s\n", mixed_string);

return 0;
}

现在稍微解释一下。新字符串的大小将是两个字符串的大小:

int total = strlen(argv[1]) + strlen(argv[2]);
char mixed_string[total];

我们在一个字符串和另一个字符串之间交替字符,同时最小的字符串仍然有字符可供读取:

for(i = 0; i < total;)
{
if(*a)
{
mixed[i++] = *a++;
}

if(*b)
{
mixed[i++] = *b++;
}
}

我真的不需要检查哪一个更小,当我检查指针是否指向有效的东西时,这是隐式的。

您可以通过传递两个字符串作为输入来在命令行上运行它(我在这里使用 Bash 和 GCC):

➜ ~/Code/C gcc -o test test.c
➜ ~/Code/C ./test First Second
FSiercsotnd

希望对你有帮助!

关于C 程序-如何将 2 个字符串相互集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36223658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com