gpt4 book ai didi

c - 在 C 中打印数组

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

我正在尝试更改然后打印 C 中的数组或至少第一个字符。当我声明数组时它正在工作。当我将它发送到另一个 void 时,它也会正确打印出来。但是,当我尝试更改它时,它会返回一个虚假值。这是我到目前为止的代码..

int main (void) {
char value[] = "Halleluja";

printf("The value is: %c\n", *value);
printValue(value);
printf("\nSecond value is: %c", *value);

return 0;
}

void printValue(char *test[]) {

printf("Before changing: %c", *test);

*test = "G";
}

此外,我如何才能将字符串打印为 %s 或不必遍历字符数组。比如,如果我想将“Halleluja”字符串更改为“Sandals”怎么办......

提前致谢!

最佳答案

改变

void printValue(char *test[]) 

void printValue(char *test)

*test[] 是一个指针数组,但实际上您在这里需要一个指针,因为您只传递一个字符串。

改变

*test = "G";

test = "G";

但话虽如此,您的这段代码现在有多个问题,但语法上一切都很好。

如果我没记错的话,您实际上希望使用指针更改数组 的内容。这是不可能的。

当你这样做的时候

test = "Sandals";

test 只是指向一 block 专用于存储“凉鞋”的内存。更改 value 值的安全方法是:

strncpy_s(array, sizeof(array), "Sandals", _TRUNCATE);

上面是一样的:

strncpy_s(array, sizeof(array), "Sandals", sizeof(array)-1);

关于c - 在 C 中打印数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36546522/

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