我想检查一个字符串的第一个字母是在字母表中的字母t
之前还是之后。
例如,用户输入" Brad"它会打印
"Your name starts with a letter that comes before "t"."
那种东西。
答案 0 :(得分:1)
如果你的字符串是:
char str[10] = "Brad"
你可以比较:
if (str[0]) < 't') {
...
如果&#39; B&#39;将评估为1
(true)是在角色面前。在ASCII字符集中。请注意,此比较区分大小写,因此您希望将要比较的字符转换为相同的大小写以使其有意义。您可以使用toupper()
库中的tolower()
和ctype.h
函数来完成此操作。 C将char
视为整数类型,因此您可以使用它们执行数学运算。
关于C的大多数介绍性文本都以同样的方式解决了这个问题,但是正如@Olaf指出的那样,标准并不能保证哪些值代表特定的字符。因此,当关注可移植性时,您需要更加小心。也就是说,大多数系统使用ASCII或UTF-8,它是ASCII的超集(它们对于前128个字符是相同的),使这个简单的解决方案成为合理的起点。
答案 1 :(得分:0)
如下所示(添加检查为null以及第一个字符是否为t本身等)。
string