【发布时间】:2020-11-29 02:25:16
【问题描述】:
这里我有一个检查字符串的代码,如果第一个元素是小写的,它应该把它改成大写。当我运行它时,它适用于它们的第一个元素是小写的那些字符串,但它也适用于其他字符串,它不应该。 当我在 Code::Blocks 中调试它时,我意识到当代码想要执行该函数时,它会跳转到 if 正文并且它不检查条件。 我将不胜感激。
#include <stdio.h>
#include <stdlib.h>
int main() {
char name[30];
fgets(name, sizeof(name), stdin);
printf("name: ");
puts(name);
upper(name);
puts(name);
return 0;
}
void upper (char *a)
{
if (97 <= *a <= 122)
{
*a -= 32;
}
}
【问题讨论】:
-
除非完全无法避免,否则不要对字符代码使用数值。当我阅读您的代码时,您认为我应该记住各种字符代码是什么吗? 'a' 工作正常且可读。
标签: c string pointers c-strings