相关疑难解决方法(0)

如何迭代字符串的单词?

我正在尝试迭代字符串的单词.

可以假设该字符串由用空格分隔的单词组成.

请注意,我对C字符串函数或那种字符操作/访问不感兴趣.另外,请在答案中优先考虑优雅而不是效率.

我现在最好的解决方案是:

#include <iostream>
#include <sstream>
#include <string>

using namespace std;

int main()
{
    string s = "Somewhere down the road";
    istringstream iss(s);

    do
    {
        string subs;
        iss >> subs;
        cout << "Substring: " << subs << endl;
    } while (iss);
}
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方式来做到这一点?

c++ string split

2895
推荐指数
43
解决办法
214万
查看次数

stringstream究竟做了什么?

我从昨天开始学习C++并且正在使用这个文档:http://www.cplusplus.com/files/tutorial.pdf(第32页).我在文档中找到了一个代码,然后运行它.我尝试输入Rs 5.5的价格和一个整数的数量,输出为0.我尝试输入5.5和6,输出是正确的.

// stringstreams
#include <iostream> 
#include <string> 
#include <sstream> 

using namespace std; 

int main () 
{ 
  string mystr; 
  float price = 0; 
  int quantity = 0; 

  cout << "Enter price: "; 
  getline (cin,mystr); 
  stringstream(mystr) >> price; 
  cout << "Enter quantity: "; 
  getline (cin,mystr); 
  stringstream(mystr) >> quantity; 
  cout << "Total price: " << price*quantity << endl; 
  return 0; 
}
Run Code Online (Sandbox Code Playgroud)

问题:mystring命令究竟做了什么?引自文件:

"在这个例子中,我们间接从标准输入中获取数值.不是直接从标准输入中提取数值,而是从标准输入(cin)获取行到字符串对象(mystr),然后我们提取整数此字符串中的值为int(quantity)类型的变量."

我的印象是该函数将采用字符串的组成部分并将其用作输入.

(我不知道如何在这里提问.我也是编程的新手)谢谢.

c++ sstream

92
推荐指数
3
解决办法
24万
查看次数

标签 统计

c++ ×2

split ×1

sstream ×1

string ×1