C++에서 문자열을 토큰 화하려고했습니다.특정 조건이 충족되는지 여부에 따라 for 루프의 문자열 출력이 변경됩니다.
for(unsigned int i=0; i < data_str.length(); i++)
{
tok += data_str[i];
if(tok[i] == '\n')
{
//cout << "NEWLINE" << endl;
tok = "";
}
if(tok == "output:")
{
cout << "OUTPUT FOUND" << endl;
tokens.push_back("output:");
tok = "";
}
cout << tok << endl;
}
당신이 특정 토큰 ("출력") 때 나는 tok
변수를 재설정하고 있습니다 볼 수 있듯이 :는 아래와 같이 나는, 내가 문자열을 반복 사용 해요 for
루프가 녹이다. 그런 다음 tokens
이라는 내 토큰을 저장하는 데 사용하는 벡터에 문자열을 추가합니다. 내 토큰 벡터에 적절한 양의 문자열이 있는지 확인하려면 인쇄했습니다. 나는 두 개의 문자열, 각각 "출력 :"을 기대했다. 그러나 벡터를 인쇄 할 때 문자열은 하나뿐입니다. 나는 약간의 디버깅을 수행했으며, "output :"토큰을 찾은 후에 tok
변수를 재설정하려고 시도 할 때마다 루프는 "출력 :"문자열 하나만 찾습니다. 나는 다음 tok
변수를 인쇄하기로 결정, 다음과 같은 출력을 가지고 :
o
ou
out
outp
outpu
output
OUTPUT FOUND
output:
output:"
output:"H
output:"He
output:"Hel
output:"Hell
output:"Hello
output:"Hello
output:"Hello W
output:"Hello Wo
output:"Hello Wor
output:"Hello Worl
output:"Hello World
output:"Hello World"
o
ou
out
outp
outpu
output
OUTPUT FOUND
output:
output:"
output:"G
output:"Go
output:"Goo
output:"Good
output:"Goody
output:"Goodye
output:"Goodye
output:"Goodye W
output:"Goodye Wo
output:"Goodye Wor
output:"Goodye Worl
output:"Goodye World
output:"Goodye World"
output:string
output:string
TWhy는 않는다 : 나는 내가 가진 tok
변수를 재설정 라인에서 주석 때
o
ou
out
outp
outpu
output
OUTPUT FOUND
"
"H
"He
"Hel
"Hell
"Hello
"Hello
"Hello W
"Hello Wo
"Hello Wor
"Hello Worl
"Hello World
"Hello World"
"Hello World"
"Hello World"
o
"Hello World"
ou
"Hello World"
out
"Hello World"
outp
"Hello World"
outpu
"Hello World"
output
"Hello World"
output:
"Hello World"
output:"
"Hello World"
output:"G
"Hello World"
output:"Go
"Hello World"
output:"Goo
"Hello World"
output:"Good
"Hello World"
output:"Goody
"Hello World"
output:"Goodye
"Hello World"
output:"Goodye
"Hello World"
output:"Goodye W
"Hello World"
output:"Goodye Wo
"Hello World"
output:"Goodye Wor
"Hello World"
output:"Goodye Worl
"Hello World"
output:"Goodye World
"Hello World"
output:"Goodye World"
output:string
을 변수를 재설정하려고하지 않을 때 tok
? 변수를 재설정해야합니다. 그렇지 않으면 프로그램의 다른 부분이 작동하지 않습니다. 내 tok
변수를 재설정 할 수있는 대체 솔루션이 있습니까? 그래서
또는'data_str [i]'를 사용하십시오. – immibis