본문 바로가기

C 언어/연습문제

C언어 연습문제40

[문제]

적당한 길이의 문자열을 입력 받아서 그 안에 존재하는 숫자의 총 합을 계산해서 출력하는 프로그램을 작성해 보자. 예를 들어서 프로그램 사용자로부터 입력 받은 문자열이 "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