C++中截取字符串数据

有如下的数据:
01 3000000000.000
03 4000000000.0014000000000.0024000000000.008
02 3000000000.0013000000000.002
……其中01,03,02是观测值数量num,之后是观测值data,每个占14位,其中小数部分占三位。
我已经用getline()按行读取到str,我想把观测值数量大于1的data,截取存储到数组data1[]中,该如何实现?

利用CString类的成员函数Trim把空格去掉,然后统计行的字符数length,按照长度2,14,14,。。。等划分成一个CString数组(可以用Mid成员函数),然后利用把CString转化成char类型数组,利用atof函数把该数组的数转化数值,然后判断观测值,大于1的data,放入到data1【】数组中即可。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-16
既然每个数据占用的数据长度是一样的,那你就可以按照固定的字符个数取出每一个数的字符串了。然后把这个字符串转换成浮点数。然后比较保存。

C++截取字符串中的数据
include <iostream> include <string> using namespace std;void display(const int *a){ for(int i=0;a[i];i++)cout<<a[i]<<" ";cout<<endl;} void cat(const string &str,int *temp,int &a){ int count=0,k=0;unsigned int i=0;char strtemp[255]={0};while(i<str.size(...

C++ 截取字符串,抓某特定字符后的字段。
include<string.h>#include<iostream.h>int mysubstr(const char *str, const char* str0, char str1[]){str1[0] = 0;char* strp = strstr(str, str0);if (strp == NULL){return 0;}strcpy(str1, strp + strlen(str0));}int main(){char* p = "fdsafdsa a:121321321321312321"...

c++字符串截取
字符串的存储。 c\/c++里面斜杠是转义符,因此所检阅的字符串中如何有“\\”的话,比如是这样的格式: ***\\\\***\\\\***\\\\**。 否则你应该按字节处理。如果是c++,那么用类库就可以解决。下面的例子通过stringstream转储string,然后分割存储到vector中,最后数数vector的size,然后-1,就是原来字符串...

C++如何截取字符串中从a位置到b位置
p = &str[a];(p+(&str[b]-&str[a] + 1) = '\\0'; \/\/截取到指针p方法2:\/\/...为了说明情况,假如有N>b>a>0,字符串str[]长度大于b char dest[N];char *p;int i;p=dest;for(i=a;i<=b;i++,p++) *p = str[i];\/\/截取到dest[N]p = '\\0';方法3:\/\/...为了说...

C++中截取字符串的方法有哪些
纯C++可以使用 substr string a = "01234567";string b = a.substr(2, 6);

c++ 如何截取字符串的后几位?
则直接截取全部字符串\\x0d\\x0a {\\x0d\\x0a strcpy(substr, str);\\x0d\\x0a return substr;\\x0d\\x0a }\\x0d\\x0aint k = 0;\\x0d\\x0a for(int i = strlen(str) - n - 1; i < strlen(str); i++)\\x0d\\x0a {\\x0d\\x0a substr[k++] = str...

C++如何截取字符串中从a位置到b位置
方法1:\/\/...为了说明情况,假如有b>a>0,字符串str[]长度大于bchar *p;p = &str[a];*(p+(&str[b]-&str[a] + 1) = '\\0'; \/\/截取到指针p方法2:\/\/...为了说明情况,假如有N>b>a>0,字符串str[]长度大于bchar dest[N];char *p;int i;p=dest;for(i=a;i<=b;i++,...

c++怎么提取字符串的一部分
(2)下文中用到的strsub(npos,size)函数,其中npos为开始位置,size为截取大小 例1:直接查找字符串中是否具有某个字符串(返回"2")std::string strPath = "E:\\\\数据\\\\2018\\\\2000坐标系\\\\a.shp"int a = 0;if (strPath.find("2018") == std::string::npos){ a = 1;} else { a...

C++截取一个指定字符前面的字符串
cout<<"输入一个字符串:";cin.getline(a,50);cout<<"输入指定字符及它是第几个:";cin>>c>>p;p=cmp(a,c,p);cout<<"截得的字符串为:\\n";for(int i=0;i<p;i++)cout<<a[i];cout<<endl;} 注意:输入的字符串不可超过char a[50],c;语句中指定的长度50,如果想输入更长的...

C++中怎样截取字符串?
利用CString类的成员函数Trim把空格去掉,然后统计行的字符数length,按照长度2,14,14,等划分成一个CString数组(可以用Mid成员函数)。然后利用把CString转化成char类型数组,利用atof函数把该数组的数转化数值,然后判断观测值,大于1的data,放入到data1【】数组中即可。C语言是一门通用计算机编程语言...

相似回答