본문 바로가기
프로그래밍/C

C ] sscanf() 사용법

by eteo 2023. 1. 15.

 

  • %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