c++ string int

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ string int相关的知识,希望对你有一定的参考价值。

有这样一个字符串:
string str="1 54 6 23 234";
怎么把这些数字提取出来存到int数组里呢?(用C++)
字符串中数字的个数不确定

由于string中的数字个数不确定,那么将这些数字存到一个大小一定得int数组中,显然是不对的!
所以这里只能存到大小可变的容器中去(如,list,vector) 这里我是用vector
思路:
先将string中的字符串按delims(空格)分为几个小的字符串(数字组成的),然后对每一个小字符串用atoi()函数将其转换成对应的整数,然后将每个整数按顺序存到vector<int>中去:
#include <iostream>
#include <string>
#include <vector>
#include <cstring>
using namespace std;

int main ()

const string delims(" ");
string line;
vector<int> ivec; // containter for int

getline(cin, line);

string::size_type begIdx, endIdx;

begIdx = line.find_first_not_of(delims);

while (begIdx != string::npos)
endIdx = line.find_first_of(delims, begIdx);
if (endIdx == string::npos)
endIdx = line.length();

ivec.push_back(atoi(string(line, begIdx, endIdx-begIdx).c_str()));

begIdx = line.find_first_not_of(delims, endIdx);

for (vector<int>::const_iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
cout << *iter << ' ';

用上面的程序就能将string str="1 54 6 23 234";
中的1 54 6 23 234 等数字(int)提取出来!
顺便说一下:楼上的回答是最简便的C++实现!
参考技术A strlen()获得长度,getat(int)在一个一个的区。 参考技术B 将string转换成istringstream,然后用<<操作符读取到int变量中,用vector存储读取到的每个int。 包您满意哈~~

例子:

[15:34:39@~/c-cpp]$ cat a.cpp
#include<iostream>
#include<iterator>
#include<string>
#include<vector>
#include<sstream>
using namespace std;
int main()

string s = "1 54 6 23 234";
vector<int> v;
istringstream iss(s);
v.assign(istream_iterator<int>(iss),istream_iterator<int>());
copy(v.begin(), v.end(), ostream_iterator<int>(cout, "\n"));


[15:34:42@~/c-cpp]$ g++ a.cpp -Wall
[15:34:45@~/c-cpp]$ ./a.out
1
54
6
23
234
[15:34:48@~/c-cpp]$

C++语法小记---string和int的相互转换

string和int的相互转换

  • string转int
1 istringstream is("12"); //构造输入字符串流,流的内容初始化为“12”的字符串   
2 int i;   
3 is >> i; //从is流中读入一个int整数存入i中  

 

  • int转string
1 int aa = 30;
2 stringstream ss;
3 ss<<aa; 
4 string s1 = ss.str();
5 cout<<s1<<endl; // 30

 

  • 记忆:转成int就是i开头的类型,转成string就是s开头的类

 

以上是关于c++ string int的主要内容,如果未能解决你的问题,请参考以下文章

Java 中intString的类型转换

Java 中intString的类型转换

大整数运算

Java:从99瓶子数到0,一个intString变量while循环if条件测试

怎样将int类型的数组转换成string

String--int互转