2014-05-19 1 views
0

문자열 배열이 있는데이 배열에서 푸시 이름이 있습니다.텍스트에서 단어 분리를 푸시하는 방법은 무엇입니까?

배열 :

name1 
name2 
name3 

그래서, 나는이 코드를 사용합니다 :

string name; 
for(count=0; count<3; count++) 
{ 
    getline(list_full[count], name,' '); 
    cout<<name<<endl; 
} 

그러나이 작동하지를이 오류가 발생합니다 :

string list_full[3]; 

list_full[0]: name1 family1 

list_full[1]: name2 family2 

list_full[2]: name2 family2 

나는이 목록을 원하는

에 대한 일치 기능 없음

getline(std::string&, std::string&, char) 
+0

을하면 그냥 알다시피, 당신이 길이의 배열이있는 경우 '[3]', 유효한 인덱스는'[0]','[1]','[2]'입니다. '[3] '을 인덱스하면 범위를 벗어나 정의되지 않은 동작을합니다. – CoryKramer

답변

0

에 전화를하면이 시도 :

#include <string> 
#include <sstream> 
#include <iostream> 

// ... 

for (auto const & s : list_full) 
{ 
    std::istringstream iss(s); 
    std::string token; 
    if (iss >> token) 
    { 
     std::cout << token << '\n'; 
    } 
} 

또는 C++ 03을 :

for (std::size_t i = 0; i != 3; ++i) 
{ 
    std::istringstream iss(list_full[i]); 
    // ... 
+0

(....)에 대한 오류 가져 오기 : ':'토큰 앞에 함수 정의가 허용되지 않습니다. – user3636779

+0

@ user3636779 : [실시간 데모] (http://ideone.com/IimBZU). –

+0

이 방법을 사용할 수 없습니다. 소개 된 또 다른 방법을 선택하십시오 – user3636779

관련 문제