gpt4 book ai didi

c - 如何区分字符和数字?

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

我有一个变量 int number,我需要的代码只允许将 1、2、3、4 或 5 引入变量。

我有 scanf,我只是做一个 if...else 来检查数字是否在 1 到 5 之间,但关键是我没有如果我介绍一个角色,我不知道该怎么办,例如'q'。我的意思是,我希望程序说“这是一个字符,而不是数字。”

最佳答案

在缓冲区上使用 sscanf(或在下面的示例中,argv 程序参数)尝试查找数字,然后是字符。sscanf 的返回码是:

   ...the number of input items  successfully  matched
and assigned, which can be fewer than provided for, or even zero in the
event of an early matching failure.

这是一个示例程序

#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>

int main(int argc, char ** argv){

int val=-1;
char other;
int code;

if (argc !=2 ) {
printf("please give an arg to program\n");
exit(0);
}

code=sscanf(argv[1],"%d",&val);

if (code == 1) {
printf( "number %d", val);
}
else {
code=sscanf(argv[1],"%c",&other);
if (code == 1) {
printf("character is %c", other);
}
else {
printf("error occured");
}
}
}

关于c - 如何区分字符和数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20194535/

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