【发布时间】:2014-03-29 00:16:04
【问题描述】:
大家好,我刚开始学习 c 类,我有一个关于比较 C 中的 ASCII 值的问题。
假设我有单词“hello”,我想检查 ASCII 表中的“h”是否匹配 104,通常它会匹配。因此,我使用以下代码来执行此操作,尽管我似乎发现这种方法效率不高。所以我想知道是否还有其他方法。
char word [] = "hello";
if (("%d", word[0]) == 104) puts("Yay");
对不起,如果这是一个愚蠢的问题,但在我眼中似乎没有那么有效。
非常感谢!
编辑:我发现效率低下的部分是:
("%d", word[0])
【问题讨论】:
-
我以前从未见过,而且我已经使用 C 很长时间了。但这并不意味着什么。您可以使用
word[0]=='h' -
@krowe 回答了你的问题,所以请注意:即使你只有一个语句,也总是用花括号括起来你的条件块......但是。
-
@fejese 好的,我会记住的,有什么特别的原因我应该避免使用“puts”之类的东西吗?我有 Java 背景,所以我习惯了条件块,但“puts”之类的东西是新事物,这就是我开始使用它们的原因。
-
@Glenndisimo:谁说你应该避免看跌期权?它(一种可能)等同于 Java 的 System.out.println
-
@Glenndisimo 我的意思是你应该写
if (word[0] == 104) puts("Yay");而不是if (word[0] == 104) { puts("Yay"); }(注意花括号)。这是为了避免以后添加语句或只是不小心重复一行时出现问题(请参阅本文中的“什么是错误?”部分以获取一个很好的示例:theguardian.com/technology/2014/feb/25/…)