C++ 字符串中提取数字

engravelmr 2009-09-28 08:21:54
编写一个C++程序,将用户输入的由数字字符和非数字字符组成的字符串中的数字提取出来,输出这些数字字符,不连续的数字字符要在不同行输出。【输入输出要求用cin\cout】(如:输入“gse3h584rr3443g64dnb”,则产生的数字分别是3、584、3443、64。)
请求各位给出代码!
【我现在没有积分,大家帮帮忙啊】
...全文
3266 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lihan6415151528 2009-09-29
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <string>

using namespace std;
int main()
{
string str = "lihan123csdn343dsfd是";
for(int i=0;i<str.size();i++){
if(!isalpha(str[i])){
cout<<str[i];
}
}

}
gueangyik 2009-09-29
  • 打赏
  • 举报
回复
#include "iostream"
#include <string>
#include <vector>

using namespace std;
int main()
{
vector<string> vec;
string a;
cout<<"请输入由数字字符和非数字字符组成的字符串:";
while(cin>>a)
{
vec.push_back(a);
}
for(vector<string>::size_type i=0;i!=vec.size();i++)
{
for(size_t t=0;t!=vec[i].size();t++)
{
if((vec[i][t]<='9') && (vec[i][t]>='0'))
{
cout<<vec[i][t];
}

}
}
}
  • 打赏
  • 举报
回复
1。把所有非数字字符换成 一个分隔符(任意非数字字符)
2。用wcstok或strtok拆分。。
VisionCat 2009-09-29
  • 打赏
  • 举报
回复
给个思路,希望有帮助。首先自然是从客户处读取整个字符串啦,不然用cin貌似做不了什么的。

然后的方法有很多。比如用 sscanf(...) 函数处理~。
或者自己对字符串进行分析。不知道你选择哪种?自己分析的话,其实也很简单。
skipwitit 2009-09-29
  • 打赏
  • 举报
回复
好像有点难度 输出数字要用顿号分割

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧