【发布时间】:2014-01-25 15:56:01
【问题描述】:
所以,我在 C++ 中遇到了问题。
我需要搜索一个由五个数字组成的字符串,这些数字并不总是在字符串中的同一位置。
例如,有时源字符串可能是“sjdjfut93835sxx”,有时可能是“jj3333333335”。
在第一个字符串中,我需要提取“93835”。在第二个字符串中,我不会提取任何内容,因为数字字符串超过了五个字符。
我需要找到长度为 5 个字符且只有数字、中间没有字母的数字字符串。
最简单的方法是什么?我在这方面遇到了很多麻烦,在 Google 上的任何地方或过去的 StackOverflow 问题上都找不到答案
谢谢!
【问题讨论】:
-
一个简单的嵌套循环和
std::isdigit函数就足够了。 -
到目前为止你尝试了什么?
-
或者使用
std::find_if(以std::isdigit为谓词)获取数字序列的开头,然后使用std::find_if_not查找结尾。使用std::distance检查这些位置之间的“距离”(即长度)。 -
如果要搜索的大字符串中有多个这样的字符串,你会返回什么?