【问题标题】:C++ 'Using space as a delimiter' [closed]C ++'使用空格作为分隔符'[关闭]
【发布时间】:2013-09-07 00:24:03
【问题描述】:

我是一个完整的 C++ 初学者,并且正在尝试执行以下程序:


  1. 从控制台读取一个句子。
  2. 使用空格字符作为分隔符将句子分成单词。
  3. 遍历每个单词,如果该单词是数值,则将其值加倍打印,否则打印出该单词,每个输出在其自己的行上。

我真的不知道如何做到这一点。尤其是使用空格键作为分隔符。

【问题讨论】:

  • 由于缺乏信息,我不得不问:你知道什么是字符串吗?如果是这样,您熟悉 C++ 字符串吗?如果没有,我建议你在编写这个程序之前做一些阅读。
  • 如果您熟悉处理字符串的一般情况,请查看getsstrtok
  • 尝试搜索分词器。你没有表现出任何尝试或表明你事先做了任何研究。如果你不能做第 1 部分,那么你真的没有尝试任何东西,但是对于第 2 部分,请查找标记化。

标签: c++ delimiter


【解决方案1】:

可以有如下内容:

std::stringstreamstd::getline

std::string str;
std::string temp;
std::getline(std::cin,str);

std::stringstream ss(str);

while(getline(ss,temp, ' ')) // delimiter as space
{
      std::stringstream stream(temp);
      if(stream >> val)
        std::cout<<2*val<<std::endl;
      else 
        std::cout<<temp<<std::endl;
}

DEMO

【讨论】:

  • 可能想要添加针对“数字”的保护,例如 100xxx;例如char x; ... if ((stream &gt;&gt; val) &amp;&amp; !(stream &gt;&gt; x)) {...}
猜你喜欢
  • 2016-08-05
  • 2014-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-09
  • 2015-01-06
  • 1970-01-01
  • 2016-04-28
相关资源
最近更新 更多