gpt4 book ai didi

c - C中没有strcat的字符串连接

转载 作者:太空狗 更新时间:2023-10-29 15:18:38 25 4
gpt4 key购买 nike

在没有 strcat 库函数的情况下,我无法在 C 中连接字符串。这是我的代码

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

int main()
{
char *a1=(char*)malloc(100);
strcpy(a1,"Vivek");
char *b1=(char*)malloc(100);
strcpy(b1,"Ratnavel");
int i;
int len=strlen(a1);

for(i=0;i<strlen(b1);i++)
{
a1[i+len]=b1[i];
}

a1[i+len]='\0';
printf("\n\n A: %s",a1);

return 0;
}

我对代码进行了更正。这是工作。现在我可以不用 strcpy 了吗?

最佳答案

下面是旧答案


您可以使用 strcpy 初始化字符串,就像在您的代码中一样,或者在声明 char 数组时直接初始化。

char a1[100] = "Vivek";

除此之外,你可以逐个字符地进行

a1[0] = 'V';
a1[1] = 'i';
// ...
a1[4] = 'k';
a1[5] = '\0';

或者您可以编写几行代码来替换 strcpy 并使它们成为一个函数或直接在您的主函数中使用。


旧答案

你有

        0 1 2 3 4 5 6 7 8 9 ...    a1 [V|i|v|e|k|0|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_]    b1 [R|a|t|n|a|v|e|l|0|_|_|_|_|_|_|_|_|_|_|_|_|_]

and you want

        0 1 2 3 4 5 6 7 8 9 ...    a1 [V|i|v|e|k|R|a|t|n|a|v|e|l|0|_|_|_|_|_|_|_|_]

so ...

a1[5] = 'R';
a1[6] = 'a';
// ...
a1[12] = 'l';
a1[13] = '\0';

但是有循环之类的,对吧? :D

试试这个(记得添加缺失的位)

for (aindex = 5; aindex < 14; aindex++) {
a1[aindex] = b1[aindex - 5];
}

现在想想上面循环中的 514

你可以用什么来代替它们?当你回答这个问题时,你已经解决了你的编程问题:)

关于c - C中没有strcat的字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4438541/

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