【发布时间】:2019-12-09 04:54:37
【问题描述】:
我们还需要初始化\0(NULL) 字符吗?
代码:
char S[N];
for (i = 0; i < N; ++i) {
scanf("%c", & S[i]); //Is it a wrong way to initialize char string character by character?
}
for (i = 0; i < N; ++i) {
printf("%d %c", i, S[i]);
}
【问题讨论】:
-
你应该检查scanf的返回值,并且可能还在printf格式字符串的末尾加上一个
\n -
正如下面的答案中提到的,只要您在操作字符串时提供字符串的长度“N”,这将起作用。您不能使用标准字符串函数。行终止是如何检测字符串结尾的。这是一个坏方法吗?是的,如果你不小心的话。
标签: c