Tôi có một chuỗi currentLine = "12 23 45"Tokenize a String in C++
Tôi cần trích xuất 12, 23, 45 từ chuỗi này mà không cần sử dụng thư viện Boost. Kể từ khi tôi đang sử dụng chuỗi, strtok không cho tôi. Tôi đã thử một số thứ vẫn không thành công.
Đây là nỗ lực cuối cùng của tôi
while(!inputFile.eof())
while(getline(inputFile,currentLine))
{
int countVar=0;
int inputArray[10];
char* tokStr;
tokStr=(char*)strtok(currentLine.c_str()," ");
while(tokstr!=NULL)
{
inputArray[countVar]=(int)tokstr;
countVar++;
tokstr=strtok(NULL," ");
}
}
}
một không strtok
string currentLine;
while(!inputFile.eof())
while(getline(inputFile,currentLine))
{
cout<<atoi(currentLine.c_str())<<" "<<endl;
int b=0,c=0;
for(int i=1;i<currentLine.length();i++)
{
bool lockOpen=false;
if((currentLine[i]==' ') && (lockOpen==false))
{
b=i;
lockOpen=true;
continue;
}
if((currentLine[i]==' ') && (lockOpen==true))
{
c=i;
break;
}
}
cout<<b<<"b is"<<" "<<c;
}
Đó có phải là mã thực sự của bạn, với trường hợp 'không khớp' và 'tokStr' không khớp? Ngoài ra, http://stackoverflow.com/questions/236129/how-to-split-a-string-in-c –
Bạn không báo cáo cách chúng không thành công. Họ có biên dịch không? Họ có gặp sự cố không? Họ có đưa ra kết quả không chính xác không? –
Sử dụng >> toán tử với đối số nguyên. –