#include <stdio.h>
#define SIZE 100 //SIZE 는 100으로 정의
int main(void) { char s[SIZE]; int i;
while (gets(s)!= NULL ) { //문자열을 입력받아 Null 문자가 아니면 진입 for (i = 0; i<SIZE && s[i]; i++){ if (s[i] >= 'a' && s[i] <= 'z') //입력된 문자가 a 에서 z 사이라면 s[i] = s[i] - 'a' + 'A'; //입력된 소문자에서 ascii 코드값 a 를 빼고 A 를 더한다. } puts(s); //바꾼 값을 출력한다. } return 0; }
s[i] = s[i] - 'a' + 'A';
입력된 값이 i 라면 10진수 ascii 코드값은 105입니다. 거기서 a 의 값인 97을 빼면 8이 남죠. 거기서 A의 값인 65를 더하면 65+8=73 이 됩니다. 10진수 ascii 코드 73은 대문자 I 가 됩니다. http://www.powerindex.net/U_convt/ascii/ascii.htm
: 소문자를 대문자로 바꾸는 프로그램인데 : 프로그램 line 옆에 주석을 다는 형식으로 프로그램 동작에 대해 자세히 설명해주시면 고맙겠습니다 |