[c언어] 문자열 속 숫자 합 계산 (아스키코드)

2020. 12. 21. 14:59Computer Science/C

 

문자열을 입력 받아서, 그 안에 존재하는 숫자들의 총합을 계산하여 출력하는 프로그램을 작성한다.

'0'의 아스키값은 48임을 활용한다.

 

* '1'은 49의 값을 갖으므로 '1' - 48 계산을 통해서 1이라는 숫자 값을 얻을 수 있음을 착안한다.

 

#include <stdio.h>
int main(void)
{
    char word[81], num[81];
    int i,j=0, sum = 0;

    printf("Enter one word: ");
    scanf("%s", word);

    for (i = 0;word[i] != '\0';i++)
    {
        if (word[i] >= 48 && word[i] < 65)
        {
            num[j] = word[i] - 48;
            j++;
        }
    }
    num[j] = '\0';

    for (j = 0;num[j] != '\0';j++)
    {
        sum += num[j];
    }
    printf("안에 있는 숫자들의 합은 %d\n", sum);
}

 

결과

 

'Computer Science > C' 카테고리의 다른 글

[c언어] 집합 구현  (0) 2020.12.21
[c언어] 다중집합  (0) 2020.12.21
[c언어] 자리예약 시스템  (0) 2020.12.21
[c언어] 4칙 연산 (switch문)  (0) 2020.12.16
[c언어] 배열에서 key 값 찾기  (0) 2020.12.16