c语言中如何判断用户输入的字符串是指定范围的数字

作者&投稿:大叔耍 (若有异议请与网页底部的电邮联系)
C语言中,输入一个字符串,如何区分数字字符,~

通过判断输入字符的ascii码的范围 就可以 如果大于等于48 小于等于57 就是输入的阿拉伯数字。
如果输入的字符 大于等于65小于等于90 就是大写的英文字母
如果输入字符 大于等于97 小于等于122 就是小写的英文字母
具体参考一下ascii表

1.凡是数字皆为字符。任何数字首先是字符,然后才能是数字。所以这个问题应该是如何在字符中识别数字。直接将每个字符挨个提取出来,将他赋给一个整型,得到它的ASCII码值。然后根据ASCII码的范围来判断它到底是数字字符还是非数字字符。由下表可以得知,数字范围在48~57的都是数字字符。

2.用isdigit()函数判断字符串是否为数字。 isdigit()函数包含在ctype.h头文件中, 原型: int isdigit(char c);    用法:#include    功能:判断字符c是否为数字    说明:当c为数字0-9时,返回非零值,否则返回零。3.下面使用isdigit()实现一个判断字符串是否为数字的代码。这个函数是判断某一个字符是否为数字,可以用一个字符数组接受输入的字符,然后循环判断每一个字符是否为数字,如果其中一个不是数字,那么返回0,否则返回非0;包含了判断小数点的个数和负数符号-。#include#includevoid main(){ char a[10]; int i,j,flag=0; /*flag标记小数点个数,如果超过一个,那么就不是数字*/ printf("input a number:
"); scanf("%s",a); for(i=0;a[i]!=0;i++) { if(i==0&&(a[i]=='+'||a[i]=='-')) { i++; continue; } /*如果第一个字符为+或-,不判断为非数字,可能是符号标志,继续向下判断*/ if(a[i]=='.') { flag++; if(flag>1) /*如果小数点个数超过一个,则表示不是数字*/ { break; } else if(flag==1) /*如果小数点个数为1个,则可能为小数,继续判断*/ { continue; } } j=isdigit(a[i]); if(j==0) { break; } } if(j!=0) printf("%s yes",a); else printf("%s no",a); getch();}

可以通过遍历字符串中每一个字符,利用asc码来判断是否是数字及数字的值。

我写的一个简单的程序,包含将字符串形式的整数,识别及转换。你参考吧。

#include <stdio.h>
#include <string.h>
int strToNum(char *str);
int isNum(char *str);
int p10(int m);
int main()
{
    char str[10];
    while(1)
    {
        memset(str,0,10);
        scanf("%s",str);
        if(isNum(str))
            printf("字符串对应的整数是:%d
",strToNum(str));
        else
            printf("错误!只能输入数字字符!
");
    }
    return 0;
}
int strToNum(char *str)//将字符串形式的整数转换成int型数字
{
    int len=strlen(str),i,sum=0;
    for(i=0;i<len;i++)
        sum+=(str[i]-'0')*p10(len-i-1);
    return sum;

}
int isNum(char *str)//判断字符串内容是否是一个整数,是返回1,否则返回0
{
    int len=strlen(str),i;
    for(i=0;i<len;i++)
        if(str[i]<'0' || str[i]>'9')
            return 0;
    return 1;
}
int p10(int m)//计算10的次方
{
    int i,sum=1;
    for(i=0;i<m;i++)
        sum*=10;
    return sum;
}



如何用c语言实现“判断用户输入一个值为正整数,如果不是提醒用户重新输...
可以让用户输入一个字符串,然后检查每个字符是否是0~9中的任意一个,如果不是,则不是正整数。当然这里会允许000123这样的情况出现,即数字可以用0开头。如要处理,还需另外考虑,如果不考虑这个问题,可以写成如下的代码 include <stdio.h>main(){ char input[BUFSIZ]; printf("Input a positive...

c语言:用户输入用户名和密码,判断是否合法用户(用户名为abc,密码为123...
1 以字符串方式,读入用户名和密码;2 通过strcmp函数,判断是否相同。如相同,则合法。3 给出提示信息。说明:strcmp原型为 int strcmp(char *a, char *b);功能为比较a和b两个字符串,如果相同返回0;如果a大返回1;如果b大返回-1。大小依照ascii比较。参考代码如下:include <stdio.h>#include ...

c语言中如何判断用户输入的字符串是指定范围的数字
可以通过遍历字符串中每一个字符,利用asc码来判断是否是数字及数字的值。我写的一个简单的程序,包含将字符串形式的整数,识别及转换。你参考吧。include <stdio.h>#include <string.h>int strToNum(char *str);int isNum(char *str);int p10(int m);int main(){ char str[10]; whil...

C语言如何实现判断用户输入的算式结果正确?
将用户输入的算式存在字符串中,然后将字符串中的字符转换成对应的数字和符号,自己算一遍。如果对,则告诉用户对,如果错,则告诉用户错。

求教:如何用C语言编一个判断用户输入的数据是正确的,如果是错误的,那么...
int data;int res=scanf("%d",data);while(res!=1)\/\/判断是否输入正确 { while(getchar()!='\\n') ;\/\/清理缓冲区 res=scanf("%d",data);} while(getchar()!='\\n');

c语言如何循环判断:用户输入“y”或者“n”,若用户输入了“y”则输出...
供参考 while (scanf("%c",&a)!=EOF){ if(a=='y')printf("正确")else if(a=='n')printf("错误")else printf("输入错误,请重新输入")}

在js中正则表达式如何判断用户输入的内容只能是数字和字母
function check(str){ return \/^[\\da-z]+$\/i.test(str);} 代码中关键字符含义:1、^表示匹配字符串的首字符。2、$表示匹配字符串的尾字符。3、\\d表示匹配数字。4、a-z表示匹配任意英文字母。5、[]是集合的意思,表示一个字符是[]中任意一个。6、+表示匹配1个或1个以上,[]+表示匹配...

c语言 判断用户输入的数能被3,或5整除,输出该数 怎么写
include<stdio.h> void main(){ int a;scanf("%d",&a);if(a%3==0)printf("%d能被3整除",a);else printf("%d能不被3整除",a);}

c语言:用户输入用户名和密码,判断是否合法用户(用户名为abc,密码为123...
main(){ int key,i;printf("请输入密码:\\n");scanf("%d",&key);if(key==123)printf("welcome to use the software!\\n");else{ printf("请输入密码:");scanf("%d",&key);if(key==123)printf("welcome to use the software!\\n");else{ printf("请输入密码:");scanf("%d",&...

python判断用户输入的月份有多少天(2023年最新解答)
思路先判断是闰年还是平年,再调用相应函数计算每个月多少天,然后加上前几个月的所有天数和这个月的天数importsys#输入某年某月某日,计算这一天是这一年的第几天whileTrue:year=int(input('Year:'))mon=int(input('Month:'))day=int(input('Day:'))ifye... 继续访问 C语言实现计算某一天是当年的第几天,...

昌吉市18766465122: 在c语言中,如何编写检测输入的字符串是否为字符. -
窄月丁络: #include #include void main( ) { printf("请数输入一个字符:"); char ch = getchar(); if(ch>= 'a'&&ch<= 'z') printf("该字符是小写字母"); else if(ch >= 'A'&&ch <='Z') printf("该字符是大写字母"); else if(ch>='0'&&ch <='9') printf("该字符是数字"); else printf("该字符是其他字符") ; printf("\n") ; system("pause"); }

昌吉市18766465122: C语言:如何判断输入的是数字还是其他字符 -
窄月丁络: 有很多方法: 1、可以用sacnf或gets函数直接接收输入的字符串,然后用循环遍历字符串中每一个字符,判断其是字母还是数字. 2、可以用循环调用getch()或getchar()函数来一个一个字符的接收输入,同时判读输入的是字母还是数字. 至于怎么判读是字母还是数字,很简单,假设字符c, 满足 (c>='a'&& c<='z')|| (c>='A' && c<='Z')就是字母. 满足 (c>=0 && c<=9)就是数字.

昌吉市18766465122: c语言如何判别键入字符串
窄月丁络: #include#includestruct info person ; //一般定义结构体最好放到main函数的外面,这样结构清晰int main()//最好把void换为int,不过你那样也对,这只是我的习惯{int i,j;char findname ;char empty =" ";char a ="break";//我其实没理解你这...

昌吉市18766465122: c语言 判断输入的字符串 -
窄月丁络: int flag=1; int i=0; while(str[i]!=0){ if (str[i] >='0' && str[i] <='9') ; else { flag=0; break;} } if( flag==1) ; // 是正整数 else ; // 不是

昌吉市18766465122: 如何用C语言编一个程序,来检测输入的字符串是不是某一个特定的字符串? -
窄月丁络: 是因为你的目的串中有个空格,用scanf输入的时候会把空格前的当成输入了这个问题吧??我写了个代码可以处理你上面说的这个问题,如果相同打印7,不同打印0,你要是需封成函数可以在我的基础上修改.代码在vc++6上编译运行.代码如下...

昌吉市18766465122: 如何判断用户输入的字符串是否为表示判断的yes?求C语言程序 -
窄月丁络: 用: strcmp(huida,"yes")==0 判断 为 yes (大小写区分):#include int main(){ char huida[10]; int i=0; while(1){ printf("%d answer yes or no\n",i++); scanf(" %s",huida); if ( strcmp(huida,"yes")==0) printf("answer is yes\n"); else {printf("Your answer is not yes !\n"); break;}; } return 0; }

昌吉市18766465122: C语言 判断输入的字符串是不是都是字母 -
窄月丁络: if(x[i]<'a'||x[i]>'z'||x[i]<'A'||x[i]>'Z')应改为 if(x[i]<'a'&&x[i]<'A'||x[i]>'z'&&x[i]>'Z')判断输入的字符串是否都是字母,如果有一个不是就要求用户重新输入应该是这样:#include<stdio.h>main() { int i,n=0;int ret=0; char x[4];printf("enter 字母:")...

昌吉市18766465122: 我是一个自学新手,我想问下在C语言里面怎么判定输入的是字符还是数字? -
窄月丁络: 可以if语句判断.例如判断是不是数字,可以用下面这条if语句判断 if('0'<=ch && ch<='9') printf("ch is digit\n"); 此外,提醒一下,数字也是字符.你说的是判断是字母还是数字吧?如果想判断是不是字母,这么判断: if(('a'<=ch && ch<='z') || ('A'<=ch && ch<='Z'))printf("ch is alphabet“);

昌吉市18766465122: C语言中,如何判断输入变量为字符串? -
窄月丁络: #include <stdio.h>#include <string.h> int main() { char str[200]; while(1) { printf("请输入: "); //输出提示信息 scanf("%s", &str); //等待从键盘读入一个字符串到变量str里 //使用c库里的strcmp判断输入的字符串,strcmp返回0时表示相同 //,...

昌吉市18766465122: c语言如何判断输入的是整数还是字符串 -
窄月丁络: 1、挨着判断每个字符的ASCII值是否在0~9之间.2、例程:#include <string.h> //strlen()需要的头文件#include<stdio.h>//#include "stdafx.h"#define n 100 int main(int argc, char* argv[]) { printf("*******************第八单元 函数 判断一串字符...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网