hyqd.net
当前位置:首页 >> C++提取字符串里面的数字 >>

C++提取字符串里面的数字

一. 先用 strstr 找到那行 ;二. 然后 提取出来 用sscanf进行解析 ;三. 后面的数字不知道的也可以提取出来 ;四. 可以用 %d 代替,也可以用 string 和 fstream类 还有 getline、

纯c加上string.h的库函数的话,如果格式都是这样的,建议用strtoken把这个字符串用分号打开.然后再用strtoken打散逗号,然后放在数据结构里.就可以完成提取了.

#include <iostream.h> int main() { char a[50]="1ab2cd3ef45g"; char b[50]; int cnt_index=0,cnt_int=0; //cnt_int 用于存放字符串中的数字. //cnt_index 作为字符串b的下标. for(int i=0;a[i]!='\0';++i) //当a数组元素不为结束符时.遍历字符串a. { if(a[i]>

用字符串输入流:std::istringstream, 可以像cin一样提取字符串中的内容.用标准库的: std::stoi std::stof 等函数提取数字.

这个问题太有建设性意义了,我决定去尝试一下 #include#include#include using namespace std; void main() { ifstream infile("file.txt"); if(!infile) cerr char a; while(infile.get(a)) { if(a>=0) num++; total++; } cout infile.open("file.txt",ifstream::in); char

1、完整程序如下:2、debug:VS2012#include<string>#include<iostream> using namespace std; int main() { int cnt=0; string strVar; cin >> strVar; for(int i=0;i!=strVar.length();i++) if(strVar[i] > '0' && strVar[i]<'9') cnt++; cout << cnt << endl; return 0; }

#include <string>#include <vector>#include <iostream>#include <sstream>#include <iterator>#include <algorithm> using namespace std; int main() { string str("1+24+31*4-6"); size_t idx = 0; while((idx = str.find_first_of("+-*/", idx)) != string::

这个格式是不是定的?如果是定的那么容易点,普通的解析方法就是把字符串按逗号分成两串,然后分别把两串按等号再分,分别就有s[0]="id"s[1]="1"s[2]="value"s[3]="3"这样就可以了.只有你的字符串有规则,一般都能解析的,如

字符串里的式子是未知的么?未知的话,写一个FOR循环.遍历判断数字和运算符.细节处理方面有点难度.比如是好几位的数字,就要考虑相邻的位子是否为数字.判断一个数的前面是否为运算符+ .如果前面是乘除就把两个数做运算得到一个数字,括号的话也运算得到一个数.把的来的数字放入数组中.比如1-2*3+(6-5)这个式子:通过循环和运算,变为数字 1 -6 1 放进数组,然后全部加起来.

#includeint main(){ char str[2000] ; int n[2000] ; char *p ; p = str ; int j =0 ; scanf("%s",str) ; for(int i = 0; i = 48 && *p 评论0 0 0

网站首页 | 网站地图
All rights reserved Powered by www.hyqd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com