Let's kick it
[혼공C]ch.08_도전 실전 예제 문제 본문
Slow It Down
- 아티스트
- Benson Boone
- 앨범
- Fireworks & Rollerblades
- 발매일
- 2024.07.25
대소문자 변환 프로그램으로 키보드로부터 문장을 입력받은 후에 대문자를 찾아 소문자로 바꾸는 프로그램을 작성하며, 바뀐 문장과 바뀐 문자의 수도 함께 출력한다.
대문자를 소문자로 어떻게 바꾸지? upper함수 같은 게 있나 하고 일단 작성하고 나중에 유튜브 영상 보면서 역시 함수가 있었구나 하고 함수 버전도 작성했다.
gets함수로 문자열을 입력받고,
for문을 이용해 char형 배열인 str 배열요소에서 널문자를 만나기 전까지 돌리는데
이때 문자상수의 아스키 코드 값이 대문자 범위에 있는지 확인하고 맞다면, 소문자와 대문자의 아스키코드 값 차이(= 32)를 이용해 대문자인 값을 소문자로 바꿔준다. str[i] = str[i]+32;
소문자 'a'는 97, 대문자 'A'는 65, 대문자 'Z'는 90이다.
- 함수로 바꿔서 사용한 버전
배열요소가 대문자가 맞는지 확인하기 위해서 isupper함수가 사용되었고,
대문자를 소문자로 변환하기 위해 tolower함수가 사용되었다.
tolower함수로 변환된 문자는 str[i]에 대입되어 저장된다.
isupper와 같이 is로 시작하는 함수는 검사하는 함수로 확인만 하고 변환은 안됨. 대문자인 값은 0이 아닌 원래의 값이 출력되고, 거짓이라면 0이 출력된다.
upper는 대문자, lower는 소문자
하지만 toupper와 같이 to로 시작하는 함수는 변환하는 함수로, 문자를 대문자나 소문자로 변환하고, 아닌 경우 그대로 출력된다.
'c언어' 카테고리의 다른 글
[혼공C]ch.10_배열과 포인터 (0) | 2025.02.11 |
---|---|
[혼공C]ch.09_포인터 (0) | 2025.02.08 |
[혼공C]ch.08 (0) | 2025.02.02 |
[혼공C]4주차_ch.07 (0) | 2025.02.01 |
[혼공C]3주차_ch.05,06 (0) | 2025.01.20 |