sscanf 함수 사용 예제1
I am 6 years old.
I am 12 years old.
I am 32 years old.
I am 75 years old.
위와 같은 문자열들이 있다. 여기서 나이에 해당하는 숫자들만 쏙쏙 뽑아내고 싶다면 어떻게 해야할까? 바로 sscanf 함수를 사용하면 된다. sscanf 함수는 문자열에서 필요한 데이터만 추출할 때 사용할 수 있는 함수다. sscanf에서 맨 앞의 s는 string의 약자로 보이고, 맨 뒤의 f는 format의 약자로 보인다. 함수의 이름을 통해 이 함수가 어떤 작업을 하는지 알 수 있다.
"문자열(string)에서 형식(format)이 지정된 데이터를 읽어(scan)줘."
그럼 이제 위 문자열들에서 나이에 해당하는 숫자들만 추출해보자. 4개의 문자열에서 공통적으로 존재하는 내용이 I am + 나이 + years old. 이므로 다음과 같이 코딩을 하면 된다.
위 코드를 실행하면 다음과 같이 6, 12, 32, 75만 추출해서 age란 이름의 배열에 잘 담긴 것을 확인할 수 있다.
무식해보이는 예제를 만들었지만, 가끔 이것과 유사한 작업을 해야할 때가 있다.
sscanf 함수 사용 예제2
이번에는 어떤 폴더 내에 있는 이미지의 이름 중에서 숫자 부분만 추출해보자. C:\Users\Sim\Desktop\photos 폴더 내에 있는 IMG8771.jpg 에서 8771만 추출할 것이다. 아래와 같이 코드를 짜보았다.
여기서 집고 넘어가야 할 것은 \ 자리들에 \\를 썼다는 것이다. \를 하나만 쓰면 다른 명령으로 받아들이기 때문이다. \을 나타내기 위해서는 두 개를 써야 한다. 구현 결과 8771이 제대로 추출되었다.
'Dev > matlab' 카테고리의 다른 글
[MATLAB] 연립방정식 해 구하기, mldivide 함수 (0) | 2019.10.09 |
---|---|
[MATLAB] 다양한 정도로 압축된 jpeg 이미지 만들기, imwrite 함수 (0) | 2019.07.03 |
[MATLAB] 표준화된 z-점수 산출하기, zscore 함수 (0) | 2019.06.14 |
[MATLAB] 야구 게임, 0과 9사이 숫자 3개 맞추기 (4) | 2019.04.26 |
[MATLAB] 숫자형을 문자형으로, 문자형을 숫자형으로 변환하기, num2str 함수와 str2num 함수 (2) | 2019.04.16 |
matlab에서 문자열 비교하기, strcmp 함수 (0) | 2019.04.12 |
matlab을 이용해서 파일 복사하기, copyfile 함수 (0) | 2019.04.11 |
matlab을 통해 txt 파일(메모장)에 기록을 남기려면?, fprintf 함수 (0) | 2019.04.11 |