我是编码的新手,编码了大约一个星期,我正在尝试做一个找到“?”的脚本。和“。”在脚本中,然后在脚本中输出它们的位置,我使用这些值将问题打印到文本文件中。
除非它不起作用。
如果你像这样输入值,它就会起作用。
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){
答案 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]);
}
}
我想我之前看过这个问题..