strtok는 문자열을 특정 문자를 기준으로 자르는 함수다.(split string into tokens)
https://www.cplusplus.com/reference/cstring/strtok/?kw=strtok
#include <stdio.h>
#include <string.h>
int main(){
char string[100] = "abc def ghi";
char * tmp;
tmp = strtok(string, " ");
printf("tmp : %s\n",tmp);
return 0;
}
/*
출력
tmp : abc
*/
출력값을 보면 알 수 있듯이 구분자를 기준으로 쪼갰을 때, 전자의 문자열을 반환한다.
후자의 문자열은 내부적으로 저장해놓는데
여기서 str에 NULL값을 입력해 다시 실행하게 되면 후자의 문자열을 불러와 함수를 실행한다.
다음과 같이 반복문을 사용하면
#include <stdio.h>
#include <string.h>
int main(){
char string[100] = "abc def ghi";
char * tmp;
tmp = strtok(string, " ");
while(tmp != NULL)
{
printf("tmp : %s\n",tmp);
tmp = strtok(NULL, " ");
}
return 0;
}
/*
출력
tmp : abc
tmp : def
tmp : ghi
*/
문자열이 나오지 않을 때 까지 반복하게 된다.
strpbrk는 문자열을 특정 문자를 기준으로 자르는 함수다.
strtok은 잘랐을 때, 전자의 문자열을 반환하는 반면에
strpbrk는 후자의 문자열을 반환한다는 차이점이 있다.
https://www.cplusplus.com/reference/cstring/strpbrk/?kw=strpbrk
마찬가지로 반복문을 사용하면 문자열이 나오지 않을 때까지 반복한다.
#include <stdio.h>
#include <string.h>
int main()
{
char string[100] = "abc def ghi";
char * tmp;
tmp = strpbrk(string, " ");
while(tmp != NULL){
printf("%s\n", tmp++);
tmp = strpbrk(tmp, " ");
}
return 0;
}
/*
출력
def ghi
ghi
*/
[C언어] 구조체 사용하기 (struct) (0) | 2022.06.02 |
---|---|
[C언어] 문자열을 숫자로 바꾸기 - 2 (strtol, strtoul, strtod) (0) | 2022.05.31 |
[C언어] 문자열을 숫자로 바꾸기 - 1 (atoi, atof, atol) (0) | 2022.05.28 |
[C언어] 문자열에서 한글만 추출하기 (0) | 2021.11.08 |
[C언어] 문자열에서 영어만 추출하기 (0) | 2021.11.07 |