2015-01-06 3 views
1

배열이 있습니다 [2] [3] = {e-> id = m, m-> t | e | null};문자열을 strtok을 사용하여 분할 했습니까?

두 가지 방법으로 문자열을 분할하려고합니다. ' ""(빈 공간)이 발견되면 분할해야하며 "|" 그리고 나서 다시 나눕니다. 나는 이것이 옳지 않다는 것을 알고 있지만 나를 도울 수있는 사람은 누구입니까?

for i=0 t0 row 
    for j=0 to col 
     c41= a[i][j].c_str(); 
     strcpy(pch55,c41); 
     pch5=strtok(pch55,"|" || " "); // is it correct??? 
     for (int u=0;pch5 != NULL;u++) 
     { 
      z33[u]= pch5; 

      pch5 = strtok (NULL,"|" || " "); //is it correct?? 

     } 
+1

어떤 종류의 C++입니까? 그 전제는 의사 코드처럼 보입니다. 'strtok'을 사용하는 것은 C++가 아니라 C입니다. – tadman

+0

@tadman : 전체 C 문자열 라이브러리는 C++에서 사용할 수 있습니다. 그래서'strtok'는 C++입니다. –

+0

문자열을 수정하기 때문에'strtok'을 사용하지 말라고 경고합니다. 가능한 경우'std :: string'으로 전환하고'find *'메소드를 사용하십시오. –

답변

1

를 사용하여 라인 5

pch5=strtok(pch55,"| "); // notice the space at the end 

, 라인에

pch5=strtok(NULL, "| "); 

(10) strtok를의 두번째 인수 (3)이다

문자의 모음 사용하기 문자열 구분자가 아닌 구분 기호로 사용됩니다. 그리고 NULL은 중단 된 부분부터 계속하도록 지시합니다.

+0

그 배열이 작동하지 않는다는 것을 기억하고 있습니다 [2] [3] = {e-> id = m, m-> t | e | null}; 그리고 공간이나 "|" 온다. – giantmalik

관련 문제