본문 바로가기
개발/C,C++,C#

[문제풀이] 문자열을 입력/치환 예제

by 비트-바이트 2024. 4. 25.
반응형

프로그램 설명:

  1. input 배열을 선언하여 사용자로부터 최대 99자의 문자열을 입력받습니다.
  2. original과 replacement 변수를 선언하여 변환할 기존 문자와 새로운 문자를 각각 입력받습니다.
  3. fgets 함수를 사용하여 문자열을 입력받고, 개행 문자를 null 문자로 치환하여 문자열의 끝을 정의합니다.
  4. scanf 함수를 통해 기존 문자와 새로운 문자를 공백으로 구분하여 입력받습니다.
  5. 입력받은 문자열의 길이를 계산한 후, 문자열을 순회하면서 기존 문자와 일치하는 모든 문자를 새로운 문자로 교체합니다.
  6. 변환된 문자열을 출력합니다.

이 코드는 사용자가 입력한 문자열 중에서 지정한 문자만 찾아서 다른 문자로 대체한 후, 최종 결과를 출력합니다.

#include <stdio.h>
#include <string.h>

int main() {
    char input[100];   // 사용자로부터 입력받을 원본 문자열
    char original;     // 교체될 원래 문자
    char replacement;  // 새로운 문자로 교체될 문자
    int length, i;

    printf("여러 글자를 입력: ");
    fgets(input, sizeof(input), stdin);  // 문자열 입력 받기
    input[strcspn(input, "\n")] = '\0';  // fgets는 개행 문자도 함께 입력 받기 때문에 제거

    printf("기존 문자와 새로운 문자: ");
    scanf("%c %c", &original, &replacement);  // 변환할 기존 문자와 새로운 문자 입력 받기

    length = strlen(input);  // 입력받은 문자열의 길이 계산

    // 문자열에서 지정된 문자를 새로운 문자로 변환
    for (i = 0; i < length; i++) {
        if (input[i] == original) {
            input[i] = replacement;
        }
    }

    printf("변환된 결과 => %s\n", input);

    return 0;
}
반응형