学习CPP:拆分字符串和操作
Learn CPP: Split string and manipulation?
可能重复:
删除C++中std::字符串中的空格
我开始学习cpp了。希望你们能帮我。现在,我的琴弦有问题。我从用户那里得到输入,希望忽略空白并组合字符串。这是:
getline(cin, userInput);
如果用户输入是:你好,我的名字是
我想合并到:Hellomnameis
有什么快速的方法吗。我们将非常感谢你的帮助。谢谢
编辑:
对于另一种情况:如果用户输入是:keyword-a argument1 argument2 argument3
我如何将单词分开,因为我想检查什么是"关键字"、"选项"和参数。
您可以使用:
remove_if(str.begin(), str.end(), ::isspace);
该算法只更改值,而不更改容器包含的值,因此您需要在调用remove_if
后调用string::erase
来实际修改容器的长度。
str.erase(remove_if(str.begin(), str.end(), isspace), str.end());
或者如果你是Boost风扇,你可以简单地使用:
erase_all(str, " ");
如果只想分隔单词,请使用istringstream:
istringstream iss(userInput)
iss >> blah1 >> blah2 ...
blah1可以是任何类型。例如,如果blah1是一个float,那么iss>>blah1将尝试将单词转换为float(如C函数atof(。
如果您想进行参数解析,那么getopt库可能就是您想要的。这就是驱动大多数gnu命令行实用程序(如ls(
对于去掉空间,@Als的建议是正确的。
要解析命令行参数,请执行以下操作:你可能会使用一个库,即
增强::程序选项(http://www.boost.org/doc/libs/1_47_0/doc/html/program_options.html),
或getopt
或libargh(http://bisqwit.iki.fi/source/libargh.html)
相关文章:
- 重载操作程序时出错>>用于类中的字符串 memebr
- 对字符串进行位操作
- 字符串操作 - 字符计数
- 在 c++ 中对字符串进行操作的关系运算符无法按预期工作
- 字符串操作主题消息
- std::字符串串联操作
- 在MySql中使用字符串操作函数有什么问题
- 如何在没有外部库的情况下使用C++03约束执行基于正则表达式的字符串操作
- 使用来自串行端口的字符串数据来操作振镜扫描仪在更高的速度下会出错
- 如何使用 Win32 WCHAR 执行字符串操作
- C 库中是否有任何功能将字符串转换为算术操作
- 如何将字符 a= '+'(或字符串 []) 变成实际操作?
- UTF-8字符串上的位XOR操作可提供非UTF-8输出
- 一个用于操作字符串以在vba中使用的c++dll
- 操作字符串的函数 ( "abcdef" -> "faebdc" )
- 操作字符串c++
- c++:通过函数使用指针操作字符串
- 通过对dll的标准调用操作字符串的问题
- 如何操作字符串小写并存储在同一变量中
- 使用fork() c++在共享内存中操作字符串