티스토리 뷰

목차


    반응형


    문자열에서 특정 문자를 기준으로 문자열을 나눌 수 있다.
    예를 들어 123,234,578,422 같은 문자열에서
     ,  기준으로 123   234   578  422   로 추출할 수 있다.

    원형
    char *strtok(char *s1, char *s2);

    사용법.
    strtok(대상문자열, 기준문자);

    기준 문자열을 토큰이라고 함.

    아래 소스는 메인에서 입력받은 문자열에서  :  을 기준으로 문자열을 나누는 코드.
     



    tmp = strtok(argv[1], ":");
    동작과정은, 우선 문자열에서 지정한 문자( : )를 찾고 그 위치를 null로 변경하다.
     a
                      ↑ 검색.

     a N
                      ↑ NULL 로 변경.

    그리고 문자열의 첫 주소를 반환한다.
     a
    ↑첫 주소 변환 => tmp 에 저장.

    주소를 반환 받은 값이 null이 아니면 반복을 계속한다. 아직 모두 나눈것이 아니기 때문.
    문자열이란 첫 주소부터 null 까지이기 때문에 반환된 주소를 %s로 출력하면 aaa 까지 나오게 된다.

    그 다음은 tmp = strtok(argv[1], ":");  argv[1] 가 아닌 NULL을 적어준다.
     a
                           ↑ 여기서부터 시작.         (수정하다 글자가 다 밀렸었는데, null 부터 시작인지, b 부터 시작인지 가물가물ㅠ)

    검색해서 : 가 없으므로 첫 주소를 리턴함.
     a
                           ↑ 여기 주소를 리턴함.

    문자열에 끝에는 NULL이 있기 때문에 당연히 bbb만 찍힘.


    반응형