본문 바로가기

대학교 1-2/컴프

21 프논이 기말 4번째문제_1

프논이 기말 4_1

문제에서 주어진 코드는 다음과 같다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#define _CRT_SECURE_NO_WARNINGS
 
#include void changeToDigitEncode(char s[], char e[]) // 이 함수를 제출
 
{
 
// 코드작성
 
}
 
int main(void// 변경하지 마라
 
{
 
char sentence[20], encoded[40];
 
scanf("%s", sentence);
 
changeToDigitEncode(sentence, encoded);
 
printf("%s\n", encoded);
 
}
cs

 

 

 

 

 

내 코드는 다음과 같다:

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
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
void changeToDigitEncode(char s[], char e[]) 
{    
    int i;
    for (i = 0; s[i] != '\0'; i++
    {
        e[i] = s[i] - 'A' + '1';
    }
    e[i] = '\0';//문자열의 끝 표시
 
    return;
}
 
int main(void
{
    char sentence[20];
    char encoded[40];
 
    scanf("%s", sentence);//알파벳
 
    changeToDigitEncode(sentence, encoded);
 
    printf("%s\n", encoded);//숫자
 
    return 0;
}
 
cs

여기서의 핵심은 

e[i] = s[i] - 'A' + '1';

바로 저 문장이다.

예를 들어 A인 경우는 1이 나와야 한다다만 A는 아스키 코드로 65이므로 s[0]은 65이다 따라서 아스키코드만큼의 값을 뺴주고 '1'을 더해준다여기서 햇갈리는 점이 있는데 더해야 하는 것은 1이 아닌 문자 '1'이다왜냐하면 배열e의 타입이 char이기 때문이다.

'대학교 1-2 > 컴프' 카테고리의 다른 글

21 프논이 기말 1번째 문제  (0) 2023.09.11
21 프논이 기말 4번째 문제_2  (0) 2023.09.11
21 프논이 기말 5번째 문제  (0) 2023.09.10
HW1_2  (0) 2023.09.09
HW1_1  (0) 2023.09.09