c++

C++打印限制字数

我是C++的初学者,我想知道如何做到这一点。 我想写一个接受文本行的代码。例如。 “Hello stackoverflow是一个非常好的网站” 从输出我只想打印出前三个单词并跳过其余的单词。 我想要的输出:“Hello stackoverflow是” 如果它是Java,我会使用字符串split()。至于C++,我真的不知道。他们的任何类似或C++的方法是什么?

已邀请:

wrerum

赞同来自:

为您提供进一步调查的一些建议: 对于真正的C++解决方案,您可能希望查找streamstreaming operators,如>>CPP Reference是一个很好的在线API参考。 仍然有效的C++,但根据其C历史记录将是strtok()函数来标记字符串,这有几个潜在的问题。正如Martin正确指出的那样,它修改了源数据,这并不总是可行的。此外,线程安全性和/或重入性存在问题。 因此通常使用流和C++字符串会更好。

ea_qui

赞同来自:

运算符>>将流分解为单词。
但是没有检测到行尾。 您可以做的是读取一行,然后从该行获取前三个单词:

#include <string>
#include <iostream>
#include <sstream>
int main()
{
    std::string line;
    // Read a line.
    // If it succeeds then loop is entered. So this loop will read a file.
    while(std::getline(std::cin,line))
    {
        std::string word1;
        std::string word2;
        std::string word3;
// Get the first three words from the line.
        std::stringstream linestream(line);
        linestream >> word1 >> word2 >> word3;
    }
// Expanding to show how to use with a normal string:
    // In a loop context.
    std::string       test("Hello stackoverflow is a really good site!");
    std::stringstream testStream(test);
    for(int loop=0;loop < 3;++loop)
    {
        std::string     word;
        testStream >> word;
        std::cout << "Got(" << word << ")\n";
    }
}

ksit

赞同来自:

这很简单,100%可靠

void Split(std::string script)  
{
std::string singelcommand;
   std::stringstream foostream(script);
while(std::getline(foostream,singelcommand))
   show_remote_processes(_ssh_session,singelcommand);
}    

要回复问题请先登录注册