小知识(1)isdigit()

今天做题,有道题嗑了好久(不是题难,脑子问题,再问自鲨)然后逛(zhao)博(ti)客(jie)的时候看见有个没见过的东西,记一下。

判断字符串是否全为数字 ( isdigit()库函数 )

#include <bits/stdc++.h>
using namespace std;

int main()
{     string a ="1234";
    for(int i = 0;i < a.length();i++)
    {
        if(isdigit(a[i]))//关键检查每一个字符是否都为十进制数字
            continue;
        else
        {
            cout << "含非数字字符";
            return;
        }
    }
    cout << "该字符串全为数字";
}

http://www.fjutacm.com/Problem.jsp?pid=1867

题很简单,只是想记一个函数而已,代码如下。

 

#include<stdio.h>
#include<string.h>
#include<bits/stdc++.h>
using namespace std;

int main(){
    char s1[10005];
    int l,a,k,fg;
    long long sum;
    while(~scanf("%s",s1)){
        sum=0,a=0,fg=0;
        l=strlen(s1);
        for(int i=0;i<l;i++){
            a=0;
            k=i;
            while(isdigit(s1[i])){
                a=a*10+s1[i]-'0';
                i++;
                fg=1;
            }
            if(fg==1)
            while(s1[k-1]=='-'||s1[k-1]=='+'){
                if(s1[k-1]=='-'){
                    a=-a;
                }
                k--;
            }
            sum+=a;
        }
        if(fg)
        printf("%lld
",sum);
        else
        printf("NULL
");
    }
    return 0;
} 

 

EOF

 

 

 

原文地址:https://www.cnblogs.com/Untergehen/p/14290096.html