728x90
strtok()
- 특정문자를 기준으로 문자열을 자름
- 헤더 : string.h
- strtok(대상문자열, 기준문자);
- char *strtok(char *_String, char const *_Delimiter);
- 자른 문자열을 반환, 더 이상 자를 문자열이 없으면 NULL을 반환
char *ptr = strtok(s1, " "); // " " 공백 문자를 기준으로 문자열을 자름, 포인터 반환
while (ptr != NULL) // 자른 문자열이 나오지 않을 때까지 반복
{
printf("%s\n", ptr); // 자른 문자열 출력
ptr = strtok(NULL, " "); // 다음 문자열을 잘라서 포인터를 반환
}
#define _CRT_SECURE_NO_WARNINGS // strtok 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>
#include <string.h> // strtok 함수가 선언된 헤더 파일
int main() { char s1[30] = "2015-06-10T15:32:19"; // 크기가 30인 char형 배열을 선언하고 문자열 할당
char *ptr = strtok(s1, "-T:"); // -, T, 콜론을 기준으로 문자열을 자름,포인터 반환
while (ptr != NULL) // 자른 문자열이 나오지 않을 때까지 반복
{
printf("%s\n", ptr); // 자른 문자열 출력
ptr = strtok(NULL, "-T:"); // 다음 문자열을 잘라서 포인터를 반환
}
return 0;
}
#define _CRT_SECURE_NO_WARNINGS // strtok 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>
#include <string.h> // strtok 함수가 선언된 헤더 파일
int main()
{
char s1[30] = "The Little Prince"; // 크기가 30인 char형 배열을 선언하고 문자열 할당
char *sArr[10] = { NULL, }; // 크기가 10인 문자열 포인터 배열을 선언하고 NULL로 초기화
int i = 0; // 문자열 포인터 배열의 인덱스로 사용할 변수
char *ptr = strtok(s1, " "); // 공백 문자열을 기준으로 문자열을 자름
while (ptr != NULL) // 자른 문자열이 나오지 않을 때까지 반복
{
sArr[i] = ptr; // 문자열을 자른 뒤 메모리 주소를 문자열 포인터 배열에 저장
i++; // 인덱스 증가
ptr = strtok(NULL, " "); // 다음 문자열을 잘라서 포인터를 반환 }
for (int i = 0; i < 10; i++)
{
if (sArr[i] != NULL) // 문자열 포인터 배열의 요소가 NULL이 아닐 때만
printf("%s\n", sArr[i]); // 문자열 포인터 배열에 인덱스로 접근하여 각 문자열 출력
}
return 0;
}
728x90
'고흐의 연구실 > C언어와 C++' 카테고리의 다른 글
[C언어] 수를 문자열로 변환 sprintf(), sprintf_s() 비교 (0) | 2020.08.09 |
---|---|
[C언어] 문자열을 수로 변환 atoi(), strtol(), atof(), strtof(), strtod() (0) | 2020.08.09 |
[C언어] 문자열 검색 sprintf(), strchr(), strrshr(), strstr() (0) | 2020.08.07 |
[C언어] 리터럴 접미사 (0) | 2020.07.28 |
[C언어] 문자 자료형 / 아스키코드표(ASCII) (0) | 2020.07.28 |