我想分割std::string的regex.
我在Stackoverflow上找到了一些解决方案,但是大多数都是通过单个空格或使用外部库(如boost)拆分字符串.
我不能用boost.
我想用正则表达式分割字符串 - "\\s+".
我正在使用这个g ++版本g++ (Debian 4.4.5-8) 4.4.5,我无法升级.
我有一个字符串,其中包含一些用空格分隔的整数.例如
string myString = "10 15 20 23";
Run Code Online (Sandbox Code Playgroud)
我想将它转换为整数向量.所以在这个例子中,向量应该是相等的
vector<int> myNumbers = {10, 15, 20, 23};
Run Code Online (Sandbox Code Playgroud)
我该怎么做?抱歉愚蠢的问题.
可能重复:
C++:如何拆分字符串?
分裂一个字符串
在c ++中用空格分割字符串的最佳方法是什么?
我希望能够根据制表符,空格等拆分它,当然也可以忽略多个制表符/空格/等.连续,并没有在最后有这些事情的问题.
最后,我最终将它存储在一个向量中,但如果有一些简单的内置标准库分割方法,我可以轻松地在数据类型之间进行转换.
我在使用g ++的UNIX机器上构建它,而不是使用Microsoft Visual C++
我正在寻找C++中的类似函数.string.split(delimiter)它确实返回由指定分隔符剪切的字符串数组..
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)
有一个好的答案,但作者删除了它.
__PRE__
可能重复:
如何在C++中拆分字符串?
我有一个数据输入文件,每行都是一个条目.在每一行中,每个"字段"由一个空格""分隔,所以我需要按空格分割线条.其他语言有一个叫做split(C#,PHP等)的函数,但是我找不到一个用于C++的函数.我怎样才能做到这一点?这是我的代码获取行:
string line;
ifstream in(file);
while(getline(in, line)){
// Here I would like to split each line and put them into an array
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种简单的方法来标记字符串输入而不使用非默认库,如Boost等.
例如,如果用户输入forty_five,我想使用_作为分隔符分隔四十和五.
如何102:330:3133:76531:451:000:12:44412通过" :"字符拆分诸如" " 的字符串,并将所有数字放入一个int数组(数字序列始终为8长)最好不使用外部库,如boost.
另外,我想知道如何在处理之前从字符串中删除不需要的字符,例如"$"和"#"?
我正在进行一项任务,我应该读取一个文件并计算行数,同时计算其中的单词.我在while循环中尝试了getline和strtok的组合,但是没有用.
file:example.txt(要读取的文件).
嗨,你好,这真是一个惊喜.
欢迎来到这个地方.
愿你在这里过得愉快.
(3行,有些话).
Readfile.cpp
#include <iostream>
#include <fstream>
#include<string>
using namespace std;
int main()
{
ifstream in("example.txt");
int count = 0;
if(!in)
{
cout << "Cannot open input file.\n";
return 1;
}
char str[255];
string tok;
char * t2;
while(in)
{
in.getline(str, 255);
in>>tok;
char *dup = strdup(tok.c_str());
do
{
t2 = strtok(dup," ");
}while(t2 != NULL);
cout<<t2<<endl;
free (dup);
count++;
}
in.close();
cout<<count;
return 0;
}
Run Code Online (Sandbox Code Playgroud) 在C++中,如何将字符串拆分为大小均匀的字符串?
例如,我有一个字符串"012345678",并希望它将它分成5个较小的字符串,这应该给我一些像"01","23","45","67","8"这样的东西.
我无法确定较小字符串的长度.在前面的示例中,原始字符串的大小为9,我想将其拆分为5个较小的字符串,因此除了最后一个字符串之外的每个较小的字符串应该是9/5 = 1的长度,但最后一个字符串的长度为9 - 1*4 = 5,这是不可接受的.
所以这个问题的正式定义是:原始字符串被拆分为完全n个子字符串,并且没有两个子字符串的长度差异应大于1.
我的重点不是C++语法或库.这是如何设计算法,以便返回的字符串的大小几乎相等.