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

C++에서 문자열 길이를 구하는 5가지 방법

이 글에서는 C++에서 문자열 길이를 구할 수 있는 다섯 가지 방법을 소개합니다. C++에서는 전통적인 C 스타일의 문자 배열(char 배열) 방식과 함께, C++ 전용 string 클래스도 제공합니다. 어떤 방식의 문자열을 사용하느냐에 따라 길이를 계산하는 방법도 달라집니다.

문자열 길이를 구하는 다양한 방법

1. string::length() 함수

C++의 string 클래스는 length() 멤버 함수를 제공합니다. 문자열 객체에 포함된 문자 수를 그대로 반환하며, 가장 직관적이고 널리 사용되는 방법입니다.

2. string::size() 함수

size() 함수는 length()와 완전히 동일한 결과를 반환합니다. STL(표준 템플릿 라이브러리)의 다른 컨테이너들과 일관성을 유지하기 위해 함께 제공되는 함수입니다.

3. strlen() 함수

전통적인 C 스타일 문자열(char 배열)의 길이를 구하려면 <cstring> 헤더 파일에 선언된 strlen() 함수를 사용하면 됩니다. 이 함수는 문자열의 끝을 나타내는 널 종료 문자('\0') 앞까지의 문자 개수를 반환합니다.

4. while 루프 활용

포인터를 이용해 문자열의 첫 문자부터 시작하여 '\0'을 만날 때까지 한 문자씩 이동하면서 직접 개수를 세는 방식입니다. 문자열 길이 계산의 내부 동작 원리를 이해하는 데 도움이 됩니다.

5. for 루프 활용

인덱스 기반으로 문자열을 순회하면서 '\0'을 만나기 전까지 반복 횟수를 세는 방식입니다. while 루프와 같은 원리지만 인덱스를 명시적으로 관리한다는 점이 다릅니다.

그럼 예제 코드를 통해 각 방법을 실제로 확인해 보겠습니다.

예제 코드

#include<iostream>
#include<cstring>
using namespace std;
main() {
   string myStr = "This is a sample string";
   char myStrChar[] = "This is a sample string";
   cout << "String length using string::length() function: " << myStr.length() <<endl;
   cout << "String length using string::size() function: " << myStr.size() <<endl;
   cout << "String length using strlen() function for c like string: " << strlen(myStrChar) <<endl;
   cout << "String length using while loop: ";
   char *ch = myStrChar;
   int count = 0;
   while(*ch != '\0'){
      count++;
      ch++;
   }
   cout << count << endl;
   cout << "String length using for loop: ";
   count = 0;
   for(int i = 0; myStrChar[i] != '\0'; i++){
      count++;
   }
   cout << count;
}

실행 결과

String length using string::length() function: 23
String length using string::size() function: 23
String length using strlen() function for c like string: 23
String length using while loop: 23
String length using for loop: 23

위 실행 결과에서 볼 수 있듯이, 다섯 가지 방법 모두 "This is a sample string"이라는 동일한 문자열에 대해 23이라는 동일한 길이를 반환합니다. 상황과 코드 스타일에 맞게 적절한 방법을 선택해 사용하면 됩니다.