gpt4 book ai didi

c - 我的 isupper 函数总是说它不是 upper

转载 作者:太空宇宙 更新时间:2023-11-04 00:18:05 24 4
gpt4 key购买 nike

我似乎无法弄清楚为什么我的输出只有一倍。

#include<stdio.h> 
#include<stdlib.h>
int my_isupper(int c);
int my_tolower(int c);

int
main(int argc,char *argv[]){
int c;
printf("Enter alphabet:");
scanf("%d",&c);
if ((c<='A' && c>='Z')||(c<='a' && c>='z')){
printf("Error: Please type a alphabet\n");
exit(EXIT_FAILURE);
}
if (my_isupper(c)==0){
printf("isnotupper");
}
else{
printf("is upper");
}
return 0;
}
int my_isupper(int c){
if(c>='A' && c<='Z'){
return 1;
}
else {
return 0;
}
}

输出总是“Isnotupper”。可能是一个简单的错误。我是 c 编程的新手。如果您有任何调试技巧,请告诉我,这样我就不会用我可以 self 纠正的事情来打扰任何人。谢谢!

最佳答案

int c;
printf("Enter alphabet:");
scanf("%d",&c);

应该是

char c;
printf("Enter alphabet:");
scanf("%c",&c);

您需要扫描字母而不是整数。按照您的代码,您希望用户输入字母表,如果您输入字母表,scanf()(前一个带有 %d)将失败。所以总是检查 scanf() 返回值。

if(scanf("%c",&c) == 1)
//Do you stuff
else
//Throw an error

关于c - 我的 isupper 函数总是说它不是 upper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29529308/

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