길이가 9인 문자열을 입력 받아, 그 문자열에서 소문자를 찾아 모두 대문자로 바꾸어, 문자열을 출력하시오.
(단, 문자열 입력방법;)
char ary[ 10 ] ;
scanf_s(“%s”, ary, 10); //또는 scanf_s(“%s”, &ary[0], 10);
// 문자열은 선언하고 난 후 맨 마지막에는 0값이 들어가게 된다.
이게 문제고 해답은
#include <stdio.h>
void main() {
char ary [ 10] ;
scanf_s("%s", &ary[0], 10);
for (int i = 0; i < 10; i++) {
if (ary[i] >= 'a' && ary[i] <= 'z') {
int a = ary[i] -= 32;
printf("%c", a);
}
else if (ary[i] >= 'A' && ary[i] <= 'Z') {
int a = ary[i];
printf("%c", a);
}
}
}
이건데 문자열 길이가 9인데 왜 char ary [ 10 ]인지 모르겠고 int a = ary[i] -=32; 이부분에서 -32가 아스키코드같긴한데 정확히 이 구문이 뭘 말하는지 모르겠읍니다.
아스키코드 맞워요 소문자가 대문자보다 32만큼 아스키코드가 크기때문에 빼서 대문자로 맞춰준거에요 그리고 문자열길이는 네이버에 널문자라고 쳐서 공부해보세용 - dc App
답변 감사합니다.