gpt4 book ai didi

c - 索引到 char 数组以附加字符串

转载 作者:太空宇宙 更新时间:2023-11-04 02:38:07 25 4
gpt4 key购买 nike

我这样做是为了附加一些文本:

char text[100];
strcpy(text, "Hello");

char input[] = "random";
strncpy(text + strlen(text), input, sizeof(text) - strlen(text));

我这样做了,它似乎适用于 ASCII 文本。但我担心我做指针运算并不安全。如果输入是 UTF-8 怎么办?

仅供引用,当我执行 text + strlen(text) 时,我得到一个指向句子结尾的指针,然后附加到句子的结尾。

text => |h|e|l|l|o|NUL||||||....

text + strlen(text) => |NUL|||||.....

最佳答案

这正是 strcat 存在的原因:

char text[100];
strcpy(text, "Hello");

char input[] = "random";
strcat(text, input);

为确保内存敏感连接防止溢出,请使用以下修改:

   char *text;

//allocate memory
text = (char *) malloc(15);
strcpy(text, "Hello");


char input[] = "random";

//reallocate memory
text = (char *) realloc(text, strlen(text)+strlen(input) +1);
strcat(text, input);
free(text);

关于c - 索引到 char 数组以附加字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34892503/

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