- %d : 공백으로 구분된 문자열을 정수로 읽어들인다.
- %s : 공백으로 구분된 문자열을 문자열로 읽어들인다.
- %*s : 공백으로 구분된 문자열을 읽어들이지 않고 건너뛴다.
#include <stdio.h>
#include <string.h>
int main(void) {
char *str = "ABC 123";
int num = 0;
sscanf(str, "%*s %d", &num);
printf("%d\n", num);
}
- %[A] : 현재 위치에서 문자 A가 있는 경우 A를 문자열로 읽어들인다.
- %*[A] : 현재 위치에서 문자 A를 읽어들이지 않고 건너뛴다.
- %[^B] : 현재 위치에서 문자 B 직전까지 문자열로 읽어들인다.
- %*[^B] : 현재 위치에서 문자 B 직전까지를 읽어들이지 않고 건너 뛴다. (포인터는 B 위치)
#include <stdio.h>
#include <string.h>
int main(void) {
char *str = "ID=abc, PW=123";
char dst[10];
int num = 0;
sscanf(str, "%*[^=]%*[=]%[^,] %*[^=]%*[=]%d", dst, &num);
printf("%s %d\n", dst, num);
}
참고 : https://micropilot.tistory.com/entry/sscanf-format-string
'프로그래밍 > C' 카테고리의 다른 글
컴파일러 워닝 "was set but never used" 해결법 (0) | 2023.01.31 |
---|---|
#ifdef 와 #if defined() 의 차이 (0) | 2023.01.31 |
C ] strtol, strtoul : 정수 문자열을 진수 선택하여 long/unsigned long 값으로 변환 (2진수, 8진수, 10진수, 16진수) (0) | 2023.01.15 |
C ] strtok, strtok_r : 구분 문자로 문자열 쪼개기 (0) | 2023.01.15 |
윈도우 소켓 ] 소켓 프로그래밍 용어 및 함수 정리 (0) | 2023.01.01 |