【发布时间】:2017-11-29 15:56:48
【问题描述】:
您能帮我在不使用 isdigit 之类的函数的情况下查找字符串中的数字吗?我只能使用 for 循环和指针。如果我有
std::string s {"A year has 365 days"}
为什么我不能这样做:
for (int i=0; i<s.size(); i++){
while (s[i]>='0' && s[i]<='9) v[i].push_back(s[i]);
}
我知道这会将数字 3 6 和 5 存储在向量中,而不是数字 365。但我不明白为什么我的 while 循环不起作用。
【问题讨论】:
-
它不起作用,因为你的循环条件是“它是一个数字”,所以当它是一个数字时将它添加到
v[i]。如果字符串不是以数字开头怎么办? -
但如果它不是一个数字,它不会做任何事情吗?我不明白,因为即使我使用它也不起作用。
if (s[i]>='0' && s[i]<='9) { while (s[i]>='0' && s[i]<='9) v[i].push_back(s[i]); i++; }, -
你觉得
i在线while (s[i]>='0' && s[i]<='9) v[i].push_back(s[i]);会发生什么? -
这段代码将永远循环,你不要在你的while循环中增加i
标签: c++ string c++11 for-loop while-loop