gpt4 book ai didi

c - 如何判断输入的字符是否为数字?

转载 作者:行者123 更新时间:2023-11-30 21:05:00 25 4
gpt4 key购买 nike

给定的任务是:

输入 10 个字符。对于输入的每个字符,相应的函数都会打印它是否是数字 0-9。(如果有人担心我的“gets()”,我也会使用较旧的编译器,并且目标是在没有指针的情况下执行此操作。)

到目前为止,我尝试过类似的方法,但由于某种原因它不起作用:

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

int main(void){

char character[10][1];
char zero ='0';
char nine ='9';
int i;

printf("Enter 10 characters:\n");

for(i=0;i<10;i++){
gets(character[i]);
}

for(i=0;i<10;i++){
if(strcmp(character[i],zero)>=0 && strcmp(character[i],nine)<=0){
printf("%d. character '%c' is a digit.", i, character[i]);
}
else{
printf("%d. character '%c' is not a digit.", i, character[i]);
}
putchar('\n');
}


return 0;

}

我也尝试了这个,但它无法正确输出字符:

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

int main(void){

char character[10][1], pom[10][1];
int num_character[10];
int i;

printf("Enter 10 characters:\n");

for(i=0;i<10;i++){
gets(character[i]);
strcpy(pom[i],character[i]);
num_character[i]=atoi(character[i]);
}

for(i=0;i<10;i++){
if(num_character[i]!=0){
printf("Character '%c' is digit.", pom[i]);
}
else{
printf("Character '%c' is not digit.", pom[i]);
}
putchar('\n');
}

return 0;

}
在包含 ctype header 后,

isdigit() 也不起作用。

最佳答案

您在这里做错了几件事,从不建议使用 gets ,并且 fgets 会在末尾添加新行字符。

strcmp 的语法是:

int strcmp(const char *s1, const char *s2);

您需要两个字符串作为 strcmp 中的输入,但您使用的是一个字符串和一个字符。

在这里,最好使用字符数组而不是二维数组。

   #include <stdio.h>

int main(void)
{

char character[10]; //a simple character array
char zero ='0';
char nine ='9';
int i;

printf("Enter 10 characters:\n");

for(i=0;i<10;i++){
scanf(" %c", &character[i]); //scan characters
}
for(i=0;i<10;i++)
{
if(character[i] >= zero && character[i] <= nine) //print
printf("%d. %c is a digit \n", i+1, character[i]);
else
printf("%d. %c is not a digit \n", i+1, character[i]);
}
}

关于c - 如何判断输入的字符是否为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57739465/

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