【发布时间】:2016-04-11 10:47:18
【问题描述】:
我正在尝试更改然后打印 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”..
提前致谢!
【问题讨论】:
-
所有空行是怎么回事?
-
您希望
*test = "G";做什么?设置一个字符等于一个字符串是什么意思? -
你不是在打印一个数组,你只是在尝试打印和更改一个值,它恰好是数组中的第一个元素。
-
我正在尝试更改字符串。例如,*test = "Santa" 会将初始字符串更改为 Santa。
-
最后一个关于你的函数命名的注释,一个名为
printValue的函数应该只打印一个值,而不是修改它。对于像一个节目这样的小程序,你可以很容易地看到所有的节目,这可能并不重要,但好的命名是你应该在职业生涯早期学习的一个非常好的习惯。