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 | 31 |
Tags
- 백준
- 호유동
- 맛집
- 스프링
- 2589
- 2839
- 쓰레드 풀
- mvc
- 동적 프로그래밍
- dp
- 프로그래머스
- 스프링 MVC
- 양꼬치
- 다이나믹 프로그래밍
- 2020 KAKAO BLIND
- Spring
- 맛집 투어
- BFS
- 2638
- 1로 만들기
- 알고리즘
- HTTP API
- Servlet
- 완도산회
- 고모네 콩탕
- 설탕 배달
- 투어
- 포두부 보쌈
- 문자열 압축
- 서블릿
Archives
- Today
- Total
프로그래밍 공방
c/c++ 문자열 입력 본문
1. scanf()
예) char str[10];
scanf("%s", str);
특징
- scanf() 함수는 공백문자가 나타나면 읽기를 멈춘다. (hello world 를 입력하면 hello만 저장된다.)
- n길이의 단어를 입력 할 때 최소 n+1길이의 배열이 필요하다. (끝에 \0 값을 저장한다.)
2. gets()
예) char str[10];
gets(str);
특징
- scanf와는 다르게 공백문자가 나타나도 엔터를 입력하기 전까지 입력받는다.
- scanf와 같이 n길이의 단어를 입력 할 때 최소 n+1길이의 배열이 필요하다.
3. fgets()
예) char str[10];
fgets(str, 10, stdin);
특징
- \0을 포함한 문자열의 최대크기를 받기 때문에 오버플로우 문제를 해결할 수 있다.
- 함수가 리턴되도 모든 문자열이 입력되지 않았을 수 있다.
- 엔터키('\n')가 문자열 끝에 들어간다. puts(str);을 해주면 한 줄 더 출력되는걸 확인할 수 있다.
(printf("%s", str); 에서는 그러지 않는다.)
- arr[strlen(arr)-1] = '\0';을 해주면 해결할 수 있다.
4. getline()
예) string s;
getline(cin, s);
특징
- 문자열 크기의 제한이 없고, 공백문자 또한 포함하여 입력받는다.
'개발 > c++' 카테고리의 다른 글
cout과 printf (0) | 2017.10.10 |
---|---|
C/C++ 입출력 정리 (0) | 2017.10.02 |