문자와 for문
for(ch = 'a'; ch <= 'z'; ch++)
strcmp
ASCII 코드에서는 대문자가 소문자보다 코드가 낮기 때문에 조회 순서가 더 빠르다. 따라서 이런 것도 가능하다.
// str1이 str2보다 아스키 코드 상 앞 순번의 문자열인지
strcmp(str1, str2) < 0
// str2가 str1보다 아스키 코드 상 앞 순번의 문자열인지
strcmp(str1, str2) > 0
cin
int n;
cin >> n;
이 경우에 사용자가 수를 입력하는 대신 단어를 입력하면 무슨 일이 벌어질까?
- n의 값은 변하지 않는다.
- 입력 큐에 잘못된 입력이 그대로 유지된다.
- cin 객체의 에러 플래그가 설정된다.
- cin 메서드 호출이 false를 리턴한다.
cin 메서드가 false를 리턴한다는 사실은, 수를 읽어들이는 루프를 종료시키기 위해 수가 아닌 입력을 사용할 수 있다는 것을 의미한다.
예
// 숫자 말고 다른 문자 입력시 루프가 멈춤.
int n;
while(cin >> n)
{
// loop
}
for문으로 조합 구현하기
double result = 1.0;
for(n = numbers, p = picks; p > 0; n--, p--)
result = result * n / p;
이렇게 하면 모든 곱셈을 먼저 처리하는 것보다 중간 계산값을 작게 유지할 수 있다.
'C++' 카테고리의 다른 글
[C++ 기초 플러스] Chapter 07 프로그래밍 연습 풀이 (1) | 2025.01.08 |
---|---|
함수 원형은 왜 필요한가? (0) | 2025.01.08 |
vector와 array의 차이 (0) | 2025.01.07 |
getline()과 cin (0) | 2025.01.06 |
auto (0) | 2025.01.06 |