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

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

문자열(String)은 일련의 문자들로 이루어진 선형 배열(linear array)을 의미합니다. 그 선언 방식은 다른 배열을 정의하는 것과 동일합니다.

문자열의 길이란 해당 문자열에 포함된 문자의 개수를 말합니다. C++에서는 이를 구할 수 있는 다양한 내장 함수와 직접 구현하는 방법들이 있습니다. 이번 글에서는 C++에서 문자열 길이를 구하는 대표적인 5가지 방법을 예제 코드와 함께 살펴보겠습니다.

1) C의 strlen() 함수 사용

strlen() 함수는 C 언어에서 제공하는 함수로, 정수형 값을 반환합니다. 이 함수를 사용하려면 문자열을 문자 배열(char array) 형태로 전달해야 하며, <cstring> 헤더 파일을 포함해야 합니다.

strlen() 메서드 사용 예제 프로그램

#include <iostream>
#include <cstring>
using namespace std;
int main() {
   char charr[] = "I Love Tutorialspoint";
   int length = strlen(charr);
   cout << "the length of the character array is " << length;
   return 0;
}

실행 결과

the length of the character array is 21

2) C++의 size() 메서드 사용

size() 메서드는 C++의 string 라이브러리에 포함되어 있으며, 문자열에 포함된 문자의 개수를 정수형 값으로 반환합니다.

size() 메서드 사용 예제 프로그램

#include <iostream>
#include <string>
using namespace std;
int main() {
   string str = "I love tutorialspoint";
   int length = str.size();
   cout << "the length of the string is " << length;
   return 0;
}

실행 결과

The length of the string is 21

3) for 반복문 사용

이 방법은 별도의 함수 없이 직접 구현하는 방식입니다. 배열을 처음부터 순회하면서 요소의 개수를 세며, 널 문자('\0')를 만나면 반복을 종료합니다.

for 반복문으로 길이를 구하는 예제 프로그램

#include <iostream>
#include <string>
using namespace std;
int main() {
   string str = "I love tutorialspoint";
   int i;
   for(i=0; str[i]!='\0'; i++){ }
      cout << "the length of the string is " << i;
   return 0;
}

실행 결과

The length of the string is 21

4) length() 메서드 사용

C++의 string 라이브러리에는 length()라는 메서드가 있으며, 문자열에 포함된 문자의 개수를 반환합니다. 참고로 length()와 size()는 기능적으로 완전히 동일하게 동작합니다.

length() 메서드로 문자 수를 구하는 예제 프로그램

#include <iostream>
#include <string>
using namespace std;
int main() {
   string str = "I love tutorialspoint";
   int length = str.length();
   cout << "the length of the string is " << length;
      return 0;
}

실행 결과

The length of the string is 21

5) while 반복문 사용

while 반복문을 통해서도 문자열의 문자 개수를 셀 수 있습니다. 카운터 역할을 하는 변수를 하나 두고, 종료 조건을 '\0'이 아닐 때(!= '\0')까지로 지정하여 반복하면 됩니다.

while 반복문으로 문자열 길이를 구하는 예제 프로그램

#include <iostream>
#include <string>
using namespace std;
int main() {
   string str = "I love tutorialspoint";
   int length = 0;
   while(str[length] !='\0' ){
      length++;
   }
   cout<<"The length of the string is "<< length;
   return 0;
}

실행 결과

The length of the string is 21

정리하자면, C 스타일의 문자 배열이라면 strlen()을, C++의 string 객체라면 size() 또는 length()를 사용하는 것이 가장 간편하고 안전합니다. 반복문을 이용한 방법은 문자열이 메모리상에서 어떻게 저장되고 처리되는지 이해하는 데 도움이 되는 학습용 접근 방식이라 할 수 있습니다.