char str[10];
str = "hello i am"
char *p = strtok(str, " ") //공백을 기준으로 자른다. 근데 한번만 잘라준다.
strtok의 작동방식
문자열을 보고 '특정 문자'가 나오면 특정문자를 '\0'으로 바꿔준다.
그리고 p는 str부터 \0까지의 문자열을 저장
이게 한번만 반복되기 때문에 여러번 하려면
#include <string.h>
char str[10]; 문자열 저장
char *str[10]; 문자열 리스트 저장
str = "hello i am"
char *p = strtok(str, " ")
while(ptr != null) //마지막 문자열까지
{
strcpy(str[i++], p); //문자열 복사
p = strtok(null, " ");
}
이렇게 된다.
근데 c++의 string을 사용하는 경우 저게 안먹힌다....
우째야 하나? string을 char로 바꿔줘야 먹힌다.
#include <cstring>
string a = "hello i am";
char str[100]; //문자열 하나
string str_arr[100]; //문자열 리스트
strcpy(str, a.c_str());// char로 바꿔주기
char *p = strtok(str, " ");
while(p != null) {
str_arr[i++] = string(p);
p = strtok(null, " ");
}
'프로그래밍 언어 > c c++' 카테고리의 다른 글
[c++] 문자열을 특정 문자 기준으로 자르기2 getline & stringstream (0) | 2020.10.10 |
---|---|
[c++] accumulate 함수 (0) | 2020.10.06 |
[c] 문자열 입력 (0) | 2020.04.11 |
[c++] 문자열 입력받기 (0) | 2020.04.11 |
[c++] STL map container 사용 (0) | 2020.03.11 |
댓글