用字符串查找问题的c ++脚本

时间:2015-08-05 20:56:42

标签: c++ string vector find

我是编码的新手,编码了大约一个星期,我正在尝试做一个找到“?”的脚本。和“。”在脚本中,然后在脚本中输出它们的位置,我使用这些值将问题打印到文本文件中。

除非它不起作用。

如果你像这样输入值,它就会起作用。

driver.find_element_by_link_text("Sign In").click()

但是这样它不起作用它只是从dot [0]的值打印整个脚本直到脚本结束。

myfile << test.substr( 18, 20 ) 

我用来查找“?”的方式字符串中的位置也不是很准确。

哪里有。

myfile << test.substr( dot[0], interrogation[0] )

我有一个while循环,但由于调试原因我更换了它。 这是整个代码。 如果你能帮助我,我很感激。 感谢。

    if(x > 0){ 

2 个答案:

答案 0 :(得分:0)

代码尚未完成,但我得到了帮助。 感谢

#include <fstream>
#include <iostream>
#include <string>
#include <vector>
using namespace std;


int main (){



std::vector< int > interrogation ;
std::vector< int > dot;
//std::vector< int > exclamation;



string look = "?";
string look_again = ".";
string look_again_again = "!";

string test = " ver.o que e isto? nao sei. ola? adeus.";



string::size_type pos = test.find(look);
string::size_type sop = test.find(look_again);



while (pos != std::string::npos)
{



int a = pos ;
int b = sop;



   cout << " . found at : " << sop << std::endl;
   cout << " ? found at : " << pos << std::endl;
  // cout << " ! found at : " << exc << std::endl;

interrogation.push_back(a);
dot.push_back(b);
//exclamation.push_back(c);

string fragment = test.substr (0 , pos  );    // works
//cout << fragment << endl ;

string fragment2 = test.substr (0 , sop) ;    // works
//cout << fragment2 << endl ;



string fragment3 = test.substr (dot.back() + 1,  interrogation.back() -       dot.back());    // works
cout << fragment3 << endl ;




  pos = test.find(look, pos + 1);
  sop = test.find(look_again, sop + 1);





}
}

答案 1 :(得分:0)

您可以这样做:

void function(string str) {
  string sentence = "";
  for(int i=0; i < str.length(); i++) {
      if(str[i] == '.' || str[i] == '!')
          sentence = ""; // the sentence is not a question so clear the sentence
      else if(str[i] == '?') {
          sentence.push_back(str[i]);
          cout << sentence << endl; // output the question - just replace cout with your ofstream
      }
      else
          sentence.push_back(str[i]);
  }
}

我想我之前看过这个问题..