[문제]
적당한 길이의 문자열을 입력 받아서 그 안에 존재하는 숫자의 총 합을 계산해서 출력하는 프로그램을 작성해 보자. 예를 들어서 프로그램 사용자로부터 입력 받은 문자열이 "A15$43"이라 하면, 이 문자열 중 아라비아 숫자는 1, 5, 4, 3 이니, 1+5+4+3의 연산결과가 출력되어야 한다.
조건1) fputs, fgets, strlen 함수를 사용할 것.
조건2) 문자를 숫자로 변환하는 함수를 만들어서 사용할 것
[실행결과]
문자열 입력: ab12*4^5
숫자의 총 합: 12
[코드]
#include<stdio.h>
#include<stdlib.h>
int ConvToInt(char c);
int main(void)
{
char str[30];
int len, i;
int sum = 0;
fputs("문자열 입력: ", stdout);
fgets(str, sizeof(str), stdin);
len = strlen(str);
for (i = 0; i < len; i++)
{
if (str[i] >= '1' && str[i] <= '9')
sum += ConvToInt(str[i]);
}
printf("숫자의 총 합: %d \n", sum);
return 0;
}
int ConvToInt(char c)
{
static int diff = 1 - '1';
return c + diff;
}
<참고>
윤성우의 열혈 C 프로그래밍
'C 언어 > 연습문제' 카테고리의 다른 글
C언어 연습문제42 (0) | 2022.04.06 |
---|---|
C언어 연습문제41 (0) | 2022.04.06 |
C언어 연습문제39 (0) | 2022.04.01 |
C언어 연습문제38 (0) | 2022.04.01 |
C언어 연습문제37 (0) | 2022.04.01 |