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

c语言中如何判断用户输入的字符串是指定范围的数字(比如11到20)

可以通过遍历字符串中每一个字符,利用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\n",strToNum(str));
        else
            printf("错误!只能输入数字字符!\n");
    }
    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;
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

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