gpt4 book ai didi

c - 在 c 中将 vector 转换为字符串

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

我正在尝试使用以下函数将 vector 转换为字符串。

char* my_vect2str(char** input)
{
int i;
char* ret = (char*)xmalloc(sizeof(char*));
for(i=0; input[i] != NULL; i++)
{
if(*input[i] == '\0')
ret[i] = ' ';
else
ret[i] = *input[i];
}
ret[i] = '\0';
return ret;
}

这似乎只是获取 vector 中每个字符串的第一个字符。如何更改我的 for 循环以使其正常工作?谢谢!

最佳答案

您的 malloc 应该是指针内容的大小,而不是指针本身。您也不需要转换 malloc void *。您需要一个内部循环计数器才能遍历指针的两个维度。这应该有效:

char* my_vect2str(char** input)
{
int i;
int count = 0;
char* ret = (char*)malloc(sizeof(char*)); // should be a larger size
for(i=0; input[i] != NULL; i++)
{
int j = 0;
while(1){
if(input[i][j] == '\0'){
ret[count++] = ' ';
break;
}else{
ret[count++] = input[i][j];
}
j++;
}
}
ret[count] = '\0';
return ret;
}

关于c - 在 c 中将 vector 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15057803/

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