C++判断一个字符串中是否全是数字

#include <iostream>
#include <cstdio>
using namespace std;

bool IsdigitAll(string str)
{
    for (int i = 0; i<str.size(); i++)
    {
        if (!isdigit(str[i]))
        {
            cout << str << " is not all digit" << endl;
            return false;
        }
    }
    return true;
}

int main()
{
    string str = "123456789";
    if (IsdigitAll(str))
    {
        cout << str << " is all digit" << endl;
    }

    str = "123456789abcdef";
    if (IsdigitAll(str))
    {
        cout << str << " is all digit" << endl;
    }

    return 0;
}

输出:

123456789 is all digit
123456789abcdef is not all digit
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 C ,可以使用正则表达式来判断一个字符串是否全是数字。可以使用 "[0-9]+" 作为正则表达式匹配字符串全部是数字的情况。 例如: ``` #include <regex.h> int main() { char* str = "12345"; regex_t regex; int reti; char msgbuf[100]; /* Compile regular expression */ reti = regcomp(&regex, "^[0-9]+$", 0); if (reti) { fprintf(stderr, "Could not compile regex\n"); exit(1); } /* Execute regular expression */ reti = regexec(&regex, str, 0, NULL, 0); if (!reti) { puts("Match"); } else if (reti == REG_NOMATCH) { puts("No match"); } else { regerror(reti, &regex, msgbuf, sizeof(msgbuf)); fprintf(stderr, "Regex match failed: %s\n", msgbuf); exit(1); } /* Free memory allocated to the pattern buffer by regcomp() */ regfree(&regex); return 0; } ``` 上面的例子 ^ 和 $ 是正则表达式的边界匹配符,表示匹配字符串的开头和结尾。 ### 回答2: 正则表达式是一种用于匹配字符串模式的工具,可以用来检测字符串是否包含特定的模式或字符。要匹配一个字符串全是数字的正则表达式,可以使用以下表达式: ^\d+$ 这个表达式可以解读为: ^ 表示匹配字符串的开头 \d 表示匹配任意一个数字字符 + 表示匹配一个或多个之前的元素 $ 表示匹配字符串的结尾 所以,^\d+$ 的含义是:匹配一个一个或多个数字字符组成字符串。也就是说,只有当目标字符串的所有字符都是数字时,它才能匹配成功。 以下是一些例子,通过使用匹配正则表达式的方法来判断一个字符串是否全是数字: import re def is_all_digits(string): pattern = r'^\d+$' match = re.match(pattern, string) if match: return True else: return False print(is_all_digits("12345")) # 输出 True print(is_all_digits("456abc")) # 输出 False print(is_all_digits("7890")) # 输出 True 通过以上的例子,我们可以使用正则表达式的方法来判断一个字符串是否数字组成。这种方法不仅简洁有效,还可以适用于不同编程语言和文本编辑器。 ### 回答3: 在正则表达式,如果要匹配一个字符串全是数字的模式,可以使用以下正则表达式:^\d+$。 其,^表示匹配输入的字符串的开始位置,\d表示匹配一个数字字符,+表示匹配前面的元素一次或多次,$表示匹配输入的字符串的结束位置。 因此,^\d+$的含义是从字符串的开始到结束,匹配一个或多个数字字符。这样,如果一个字符串的每个字符都是数字,那么这个正则表达式就会匹配成功。 例如,对于字符串"12345",这个正则表达式会匹配成功。而对于字符串"abc123"或者"12.34",由于存在非数字字符,所以匹配会失败。 需要注意的是,这个正则表达式只会匹配全是数字字符串。如果字符串包含除数字之外的其他字符,就会导致匹配失败。如果想要匹配包含数字字符串,可以使用更加灵活的正则表达式,例如:\d+,这样可以匹配任意长度的数字序列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值