문자열에 문자를 더할 때

Subin·2024년 11월 25일

Algorithm

목록 보기
52/69

문자열에 문자를 더할 때, 문자를 '0' 이렇게 char형으로 더하지 않고 "0" 처럼 string형태로 더한다는 사실을 깨달았다. 이유가 궁금해서 정리해본다.


1. '0': Character (문자)

  • '0'은 문자 리터럴이며, 단일 문자를 표현합니다.

  • 내부적으로는 ASCII 값 48을 의미합니다.

  • 예를 들어:

    char c = '0'; // 문자 '0' (ASCII 값 48)
  • 숫자 문자열을 만들 때 '0'을 사용하면, std::string과의 연산에서 타입 호환 문제가 발생할 수 있습니다.

    std::string s = "Time: ";
    s += '0'; // 가능: std::string은 char 추가를 지원
    • 결과: "Time: 0"
  • 그러나 복잡한 연산에서 '0'을 문자열로 처리하려는 의도가 잘 드러나지 않을 수 있습니다.


2. "0": String (문자열)

  • "0"은 문자열 리터럴로, 문자 하나로 구성된 문자열입니다.

  • 내부적으로는 문자를 배열로 저장하며, \0 (널 문자)이 포함되어 문자열의 끝을 표시합니다.

  • 예를 들어:

    std::string str = "0"; // 문자열 "0"
  • 문자열에 문자열을 더할 때는 "0"이 더 직관적이며, 다른 문자열과의 결합 연산에서 호환성이 좋습니다.

    std::string s = "Time: ";
    s += "0"; // 문자열 추가

"0"을 사용하는가?

std::string 타입과 결합하려면 문자열과 결합하는 것이 직관적이고 안전합니다.

예:

std::string result;
int number = 5;

if (number < 10) {
    result = "0" + std::to_string(number); // "05"
}
  • "0"을 사용하면 문자열 간의 연산이 명확하게 처리됩니다.
  • 반면, '0'을 사용하면 암묵적인 변환(예: charstd::string)이 이루어져 혼란을 초래할 수 있습니다.

결론

  • 문자열 연산에서 "0"은 문자열로, '0'은 단일 문자로 사용됩니다.
  • 문자열을 다룰 때 "0"을 사용하는 것이 더 적합하며, 의도와 의미가 명확하게 전달됩니다.
profile
성장하며 꿈꾸는 삶을 살아가고 있는 대학생입니다😊

0개의 댓글