Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 문자열의 공백을 하이픈으로 바꾸는 방법

C++ 프로그래밍에서는 문자열에 포함된 공백을 하이픈(-)으로 바꿔야 하는 경우가 종종 있습니다. 예를 들어 URL 슬러그 생성, 파일명 정규화, 데이터 전처리 등의 작업에서 이런 변환이 유용하게 활용됩니다.

이 프로그램은 다음과 같은 순서로 동작합니다. 먼저 std::string 클래스의 length() 함수를 사용해 문자열의 전체 길이를 구한 뒤, 반복문으로 문자열을 한 글자씩 순회하면서 공백(' ')을 발견하면 해당 위치를 하이픈('-')으로 교체합니다.

예제 코드

#include <cstring>
#include <iostream>
using namespace std;
int main(){
    // 원본 문자열 선언
    string str = "Coding in C++ programming";
    cout<<"Normal String::"<<str<<endl;
    for (int i = 0; i < str.length(); ++i) {
        // 공백 문자를 '-'로 교체
        if (str[i] == ' ') {
            str[i] = '-';
        }
    }
    // '-'가 적용된 문자열 출력
    cout <<"Output string::"<< str << endl;
    return 0;
}

핵심 포인트

  • 인덱스 접근: C++의 std::string은 배열처럼 str[i] 형태로 개별 문자에 접근하고 수정할 수 있습니다.
  • length() 함수: 문자열의 실제 길이를 반환하므로, 반복문의 범위를 안전하게 지정할 수 있습니다.
  • 시간 복잡도: 문자열을 한 번만 순회하므로 시간 복잡도는 O(n)으로 매우 효율적입니다.

실행 결과

프로그램을 실행하면 입력된 문자열의 모든 공백이 하이픈으로 바뀌어 아래와 같이 출력됩니다.

Normal String::Coding in C++ programming
Output string::Coding-in-C++-programming

이처럼 간단한 반복문 하나만으로도 문자열 내 특정 문자를 손쉽게 치환할 수 있습니다. 더 복잡한 치환이 필요하다면 정규표현식을 활용하는 std::regex_replace 함수를 고려해볼 수도 있습니다.