我有一个asciiname [] =“ NUL \ 0”“ SP \ 0”“ P \ 0” .......`的char数组,依此类推;
比我有以下代码
while ((c = getchar()) !=EOF){
for (i=0; i<128; ++i) {
if (c == asciiname[i])
printf("The code %3x represents %s\n", i, &asciiname[4*i]);
}
}
if语句永不返回true。显然,该声明有问题。不能把我的头缠住它。 asciiname是一个char数组(每个元素1个位),但它仍然把我认为是字符串
"NUL\0"
的值变成了可能?在asciiname[i]
中计算什么if (c == asciiname[i])
值?任何帮助都非常感谢!!!更新::::只有一个char asciname [] ...对不起,我冒昧。我的目标是仅使用stdio库创建可见的打字机。基本上给了我一个文件,我必须阅读它,并且ind生成输出每行一个字符。计划是从输入中获取字符c,在asciiname数组中找到它并打印出来。代码是我必须遵循的格式。问题是我的if语句永远不会返回true。我不了解char数组的内部表示逻辑。...我读了很多书,没有运气。请解释
更新:我知道了。感谢大家的关注和迅速的回复!!!这个网站摇滚!
最佳答案
getchar()
将字符转换为整数。如果您具有c的值,那么您只需说出asciiname
就应该能够引用asciiname[c]
。您不需要使用for循环,因为您恰好具有所需的索引。
例如,asciiname[0]
将评估为"NUL\0", asciiname[1]
将评估为"SP\0"
,依此类推。