gpt4 book ai didi

c - 从所有数组元素打印字符串

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

我尝试将数组中的所有元素打印为字符串。

以下代码出现段错误。

因为 char 的一些指针没有指向正确的地址。

char *print_array(char **s) {
int i;
char *ret;
char *elm;
char *myStr;
strcat(myStr,"[");
for (i = 0; s && s[i]; ++i){
sprintf(elm,"\"%s\" ",s[i]);
strcat(myStr,elm);
}
strcat(myStr,"]");
ret = myStr;
return ret;
}
int main(){
char *myArray[10] = {"4", "2", "11", "4", "15", "7", "9", "12", "3", "6"};;
printf("## %s",print_array(myArray));
}

那么,如何打印数组中所有元素的字符串呢?

我的意思是上面的示例使用了数组的 10 个元素,但我想打印任何不知道每个元素有多少个元素和长度的数组。

有没有人知道好的方法?

最佳答案

简短且唯一的答案是:您需要告诉打印函数数组中有多少项。

怎么做并不重要,无论是作为参数,还是在数组中放入一个额外的项目作为终止符,例如NULL 指针(很像字符串本身由 '\0' 字符终止)。目前,您的打印功能很可能会超出您传入的数组的范围。


您的代码还存在其他问题,例如您既没有为 elm 也没有为 myStr 分配内存。而 ret 变量非常无用。

关于c - 从所有数组元素打印字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23153121/

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