Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- YAML
- ebs
- 쿠버네티스
- elasticsearch
- dockerfile
- docker
- Kubernetes
- terraform
- EKS
- IAM
- WSGI
- intervals
- Deployment
- leetcode
- IAC
- ansible
- asgi
- Python
- AWS
- Django
- EC2
- FastAPI
- event loop
- Service
- github
- 자바스크립트
- kernel
- K8S
- POD
- asyncio
Archives
- Today
- Total
궁금한게 많은 개발자 노트
[ C ] scanf 공백 및 원하는 형태 입력받기 본문
scanf를 사용하다 보면 공백이나 개행문자를 입력하게 되면 그 문자를 입력하기 전까지만 버퍼에 저장되게 된다.
물론 gets함수를 사용할 수 있겠지만 scanf는 원하는 format을 지정할 수 있으므로 좀 더 유연하다고 생각된다.
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char buf[20];
scanf("%s", buf); // 공백, 개행문자가 들어오기 전까지 저장
scanf("%[123], buf); // 123이외의 문자가 들어오기 전까지 저장
scanf("%[^\n], buf); // 개행문자 이외의 것만 받으며, 개행문자가 들어오기 전까지 저장
return 0;
}
위의 코드처럼 %[]의 대괄호 안에 받고 싶은 정규표현식을 넣으면 그에 해당하는 문자들만 저장할 수 있다.
정규표현식으로 생각보다 다양한 케이스들을 분리하여 원하는 것들만 받을 수 있으므로 유용하다.
굳이 이런 기능이 필요할까 싶지만, 뭔가 이런 특수한 케이스가 꽤나 많이 생겨 기록해두려 한다.
'Language' 카테고리의 다른 글
[ C++98, 03, 11, 14, 17 ] (0) | 2021.06.18 |
---|---|
[ C/C++ ] include header 작성법 (4) | 2020.12.09 |
[ Github ] Commit message 작성법 (1) | 2020.07.10 |
[ Github ] 자주 사용하는 Github 명령어 (0) | 2020.07.01 |
[ python ] 시스템 명령어 사용 (2) | 2020.06.18 |
Comments