여러 명령이 U(S)ART 통신으로 커맨더(명령어)를 송수신시 커맨드를 알아내기 위해 특정 포맷에 맞춰 문자열 분리하여 추출 할 수 있다. 이 경우 c 표준 라이브러리를 사용 가능하다면 strtok을 이용하여 문자열 추출 할 수 있다.
헤더 파일
C언어 : <string.h>
함수 원형
char* strtok(char* str, char* delimiters)
매개 변수
*str ; 분리할 문자열
delimiters : 구분 문자들을 포함하고 있는 C 형식 문자 (구분자)
리턴값
문자열에서 찾은 마지막 토큰의 주소값 리턴
토큰이 더이상 없다면 NULL 리턴
토큰이란?
일련의 문자열에서 구분 단위
직접 구현
#include <stdio.h>
char *strtok2(char *str, char *delim);
int main() {
char arr[50] = "I LOVE YOU DI DI S";
char *start = arr;
char *res = NULL;
while (*start != '\0') {
res = strtok2(start, " ");
printf("(%s) ", start); // 토큰 출력
start = res; // 다음 토큰으로 이동
}
return 0;
}
char *strtok(char *str, char *delim) {
while (*str != '\0') {
if (*str == *delim) {
*str = '\0';
return str + 1;
}
str++;
}
return str;
}'프로그래밍 언어 > c(일반)' 카테고리의 다른 글
| [컴파일 에러] undefined reference to (0) | 2025.01.22 |
|---|---|
| declaration may not appear after executable statement in block (0) | 2025.01.16 |
| [펌]RFID/NFC[3] (3) | 2024.11.27 |
| do ~ while문 , goto문 (0) | 2024.07.26 |
| 중첩 구조체 , 구조체 포인터, 구조체 배열, 구조체 포인터 배열 (0) | 2024.07.24 |