gpt4 book ai didi

c - 在 C 中将单引号附加到字符串

转载 作者:行者123 更新时间:2023-11-30 19:18:43 25 4
gpt4 key购买 nike

如何在 C 中将单引号连接到字符数组?

例如:我有一个字符数组FileName,其值为“hello world”。我想将 hello world 用单引号引起来,如下所示:"'hello world'"。该函数已传递FileName,因此我无法将数组初始化为所需的值。我必须在字符串的开头和结尾连接单引号。

最佳答案

为了使其正常工作,调用者需要向您传递一个具有足够空间容纳两个附加引号的字符串。实现此目的的一种方法是分配一个临时缓冲区,在那里构造新字符串,然后将其复制回原始字符串,如下所示:

void add_quotes(char *s) {
size_t len = strlen(s);
char tmp[len+3];
tmp[0] = '\'';
strcpy(tmp+1, s);
tmp[len+1] = '\'';
tmp[len+2] = '\0';
strcpy(s, tmp);
}

这会在自动内存中(即在堆栈上)分配一个临时缓冲区。如果您的字符串 s 可能很长,请考虑使用动态内存分配:

void add_quotes(char *s) {
size_t len = strlen(s);
char *tmp = malloc(len+3);
tmp[0] = '\'';
strcpy(tmp+1, s);
tmp[len+1] = '\'';
tmp[len+2] = '\0';
strcpy(s, tmp);
free(tmp);
}

关于c - 在 C 中将单引号附加到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26432589/

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