C언어로 천 단위 콤마 찍기 프로그램 구현하기

C 언어를 사용하여 천 단위마다 콤마를 찍어주는 프로그램을 작성하는 방법에 대해 알아보겠습니다. 이 프로그램은 문자열 처리, 조건문, 반복문, 사용자 정의 함수 등 다양한 프로그래밍 기술을 활용합니다. 아래의 소스 코드를 참고하시기 바랍니다.

코드: thousands_separator.c

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdbool.h>

#define BUFFER_SIZE 50 // 문자열 길이를 상수로 정의

// 입력된 문자열이 숫자로만 구성되어 있는지 검사하는 함수
bool is_valid_number(const char* str)
{
    while (*str)
    {
        if (*str < '0' || *str > '9')
        {
            return false; // 숫자가 아닌 문자가 있을 경우 false 반환
        }
        str++;
    }
    return true; // 모든 문자가 숫자일 경우 true 반환
}

int main(void)
{
    int len;
    int i;

    char buffer[BUFFER_SIZE]; // 문자열을 저장할 버퍼
    char* digits; // 문자열 포인터

    printf("변환시킬 숫자를 입력하세요... => ");
    scanf("%s", buffer); // 사용자로부터 문자열 입력 받음

    // 입력된 문자열이 유효한 숫자인지 검사
    if (!is_valid_number(buffer))
    {
        printf("유효한 숫자가 아닙니다.\n");
        return 1; // 유효하지 않은 경우 프로그램 종료
    }

    len = strlen(buffer); // 문자열 길이 계산
    digits = buffer; // 포인터에 버퍼 주소 할당

    printf("변환 결과 : ");

    // 문자열을 역순으로 출력하며 천 단위마다 콤마를 추가
    for (i = len; i > 0;)
    {
        printf("%c", *digits++);
        i--;
        if (i > 0 && (i % 3) == 0)
        {
            printf(",");
        }
    }
    printf("\n");

    return 0; // 정상 종료
}
변환시킬 숫자를 입력하세요... => 100000000
변환 결과 : 100,000,000

이 프로그램은 다음과 같은 절차로 작동합니다.

  1. 사용자로부터 숫자를 입력 받습니다.
  2. 입력 받은 문자열이 유효한 숫자인지 검사합니다. 이를 위해 is_valid_number 함수를 사용합니다.
  3. 문자열의 길이를 계산하고, 문자열 포인터에 문자열 버퍼의 주소를 할당합니다.
  4. 문자열을 역순으로 출력하면서 천 단위마다 콤마를 추가합니다. 이 과정은 for 문을 사용하여 구현하였습니다.

이 프로그램을 통해 문자열 처리, 사용자 정의 함수, 조건문 및 반복문 등의 다양한 프로그래밍 기법을 익힐 수 있습니다. 이러한 기술들을 활용하여 다양한 문제를 해결할 수 있으므로, 반드시 숙지하시기 바랍니다. 이상으로 C 언어를 사용한 천 단위 콤마 찍기 프로그램 구현하기를 마치겠습니다. 

 

Comments


Comments are closed