gpt4 book ai didi

c - getchar() 忽略空格

转载 作者:行者123 更新时间:2023-12-02 09:34:41 28 4
gpt4 key购买 nike

我无法忽略空格/制表符。当用户从命令提示符输入字符时,它应该只接受除空格或制表符空格之外的任何字符。

例如:

$ ./a.out Character: =

那么,就是=

如果

$ ./a.out Character:      =

如果有一堆空格,那么它应该检测为 =

我已经声明了变量a。

char a;
printf("Character: ");
a = getchar();

代码:

while((a = getchar()) != EOF){
if( a != ' ' || a != '\t'){
a = getchar();
break;
}
}

任何帮助都会很棒。谢谢。

最佳答案

更新:正如 chux 所观察到的,getchar() 返回类型 int,如果您将该结果分配给 char 类型的变量。事实上(我补充说),这样做有调用实现定义的行为的风险。简而言之,变量 a 的类型应为 int

话虽如此,看起来您想要这样的东西:

do {
a = getchar();
} while (a == (unsigned char) ' ' || a == (unsigned char) '\t');

请注意,EOF' ''\t' 都不同,因此您可以安全地将其测试推迟到循环。

另请注意,如果您也想忽略换行符和其他空白字符,那么您可能会充分利用标准 isspace() 库函数。

关于c - getchar() 忽略空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28375031/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com