2013-04-03 2 views
1

C++ 문자열에서 정수를 제거하는 것과 관련하여 기본적인 질문이 있습니다. 나는 C++이나 정규 표현식에 익숙하지 않다.문자열 C++에 나타나는대로 처음 두 정수를 추출합니다.

는 I는 정수 (가 고정되지 않음)뿐만 아니라 길이와 텍스트의 될 수

string myString = "12 text 345 text" 

로 문자열을 가지고있다. 내가해야 할 일은 첫 번째 정수 (12)와 두 번째 정수 (345)를 두 개의 정수 객체로 추출하는 것입니다.

도움을 주시면 감사하겠습니다. 다음과 같이

답변

2

당신은 stringstream를 사용할 수 있습니다

std::string myString = "12 text 345 text"; 
int firstInteger = 0; 
int secondInteger = 0; 
std::string firstString= ""; 
std:string secondString=""; 

std::stringstream ss(myString); 
ss >> firstInteger >> firstString >> secondInteger >> secondString; 
std::cout << "firstInteger " << firstInteger 
     << "\nSecondInteger " << secondInteger <<std::endl; 

그것은 출력 :

firstInteger 12 
secondInteger 345 
1

stringstream os(myString); 
os >> int imp1 >> string dummy >> int imp2; 

cout << imp1 << " and " << imp2;