gpt4 book ai didi

将 char * [] 转换为 C 中的字符串

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

如何在 C 语言中将字符指针数组(即字符串数组)转换为单个字符串?

例如:

char * args[MAXLINE/2+1];
char s[MAXLINE] = args; //<-- Pseudo code: How is this accomplished?

它必须涉及从 args 中的每个索引中取出每个字符串并将它们连接在一起以获得最终字符串。但是当我尝试这样做时,我无法让 strcat 处理 char* 数组。

最佳答案

您需要遍历指针并将它们连接起来。您还需要非常小心,不要溢出目标缓冲区。

不进行边界检查的简单实现看起来像这样:

char *ptr = s; // set ptr to the start of the destination buffer
for (i=0; i<number_of_pointers; i++) {
char *current_arg = args[i];
char c;
while ( (c = *current_arg++) ) {
// copy each character to the destination buffer until the end of the current string
*ptr++ = c;
}
*ptr++ = ' '; // or whatever joining character you want
}
*ptr = '\0'; // null terminate

你也可以循环调用 strcat 但你很快就会遇到 Schlemiel the Painter .

关于将 char * [] 转换为 C 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28686349/

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