【发布时间】:2021-01-05 22:53:05
【问题描述】:
我发现 C 中的字符串或字符数组令人困惑,因此我在编写代码时往往会犯错误。下面的代码接受一个字符数组,并在打印时将第四个元素打印为 x。
void printString(char stuff[]) {
for (int i = 0; i < 5; i++) {
if (i == 3) {
stuff[i] = 'x';
}
printf("%c", stuff[i]);
}
}
int main(void) {
char z[] = "hello";
printString(z); // output helxo
当尝试将相同的概念应用于字符数组数组时,您无法更改值
void printStrings(char stuff[5][20]) {
for (int i = 0; i < 5; i++) {
if (i == 4) {
stuff[i] = "Not Cool"; // Error: assignment to expression with array type
}
printf("%s\n", stuff[i]);
}
}
int main(void) {
char a[5][20] = {
"Words",
"More Words",
"Letters",
"Arrays",
"Cool"
}
}
任何帮助将不胜感激。
附注任何指向解释字符数组和字符串的资源的链接也会有所帮助:)
【问题讨论】: