2014-05-22 14 views
-3

24/2/13과 같이 /으로 숫자를 나누어 넣은 문자열이 있습니다. 개별적으로 int의 벡터에 저장하려고하지만이 실수는 expected unqualified-id before '.' token|입니다. 나는 그것이 어리석은 실수일지도 모른다라는 것을 알고있다. 그러나 그것은 단지 지금 qay 다. 여기 코드는 다음과 같습니다문자열에서 벡터로 정수 저장하기


int t; 
string s; 
for(int i=0;i<final_states.size();i++) 
{ 
    if(final_states.at(i)!='/') 
     s.push_back(final_states.at(i)); 
    else 
    { 
     t=atoi(s.c_str()); 
     temp_final_states.push_back(t); 
     s.clear(); 
    } 
} 
+2

다음과 같이 컴파일됩니다. https://ideone.com/X0HiGL – user877329

+2

@ user36 축하드립니다. 문제를 재현 할 수 없다면 어떻게 도움을 줄 수 있습니까? [SSCCE] (http://sscce.org)를 게시하십시오. – Praetorian

+1

@ user3658099 컴파일러는 어떤 라인을 불평합니까? – user877329

답변

0

:

std::string final_states="24/2/13"; 
std::vector<int> temp_final_states; 

temp_final_states.push_back(atoi(final_states.c_str())); 
std::string::size_type index = final_states.find('/'); 

for (; index != std::string::npos; index = final_states.find('/', index)) 
{ 
    ++index; 
    const char* str = final_states.c_str() + index; 
    temp_final_states.push_back(atoi(str)); 
} 
0

나는이 컴파일 오류입니다 가정합니다. final_states 이상으로 반복되는 것 같습니다. 하지만 push_back()을 호출하려고하면 temp_final_states이 발생합니다. 이 컬렉션을 같은 컬렉션으로 생각한다고 가정합니다.

+2

아니요. 'final_states'는'string'이고'temp_final_states'는'벡터 '입니다. – Praetorian

0

샘플 코드는 다음을 참조하십시오 항상 숫자 값으로 시작하고 '/'문자이 당신을 위해 그것을해야 문자열의 끝없는 당신의 문자열을 가정 http://ideone.com/id7E22

char str[] ="22/33/44"; 
    char * pch; 
    cout<<"Splitting string into tokens:\n"<<str; 
    pch = strtok (str,"/"); 
vector<int> vec; 
    while (pch != NULL) 
    { 
    int val = atoi(pch); 
    cout<<" "<<val; 
    vec.push_back(val); 
    pch = strtok (NULL, "/"); 
    }