산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C++ 문자열

C++는 다음 두 가지 유형의 문자열 표현을 제공합니다. -

C 스타일 문자열

C 스타일 문자열은 C 언어에서 시작되었으며 C++ 내에서 계속 지원됩니다. 이 문자열은 실제로 null로 끝나는 1차원 문자 배열입니다. 문자 '\0'. 따라서 null로 끝나는 문자열은 null 뒤에 오는 문자열을 구성하는 문자를 포함합니다. .

다음 선언 및 초기화는 "Hello"라는 단어로 구성된 문자열을 생성합니다. 배열의 끝에 널 문자를 유지하려면 문자열을 포함하는 문자 배열의 크기가 "Hello"라는 단어의 문자 수보다 하나 더 커야 합니다.

char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

배열 초기화 규칙을 따르면 위의 명령문을 다음과 같이 작성할 수 있습니다. -

char greeting[] = "Hello";

다음은 C/C++에서 위에서 정의한 문자열의 메모리 표현입니다 -

실제로 문자열 상수 끝에 null 문자를 배치하지 않습니다. C++ 컴파일러는 배열을 초기화할 때 문자열 끝에 '\0'을 자동으로 배치합니다. 위에서 언급한 문자열을 출력해 봅시다 -

라이브 데모
#include <iostream>

using namespace std;

int main () {

   char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

   cout << "Greeting message: ";
   cout << greeting << endl;

   return 0;
}

위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -

Greeting message: Hello

C++는 null로 끝나는 문자열을 조작하는 광범위한 함수를 지원합니다. −

Sr.No 기능 및 목적
1

strcpy(s1, s2);

문자열 s2를 문자열 s1에 복사합니다.

2

strcat(s1, s2);

문자열 s2를 문자열 s1의 끝에 연결합니다.

3

strlen(s1);

문자열 s1의 길이를 반환합니다.

4

strcmp(s1, s2);

s1과 s2가 같으면 0을 반환합니다. s1s2인 경우 0보다 큽니다.

5

strchr(s1, ch);

문자열 s1에서 문자 ch의 첫 번째 발생에 대한 포인터를 반환합니다.

6

strstr(s1, s2);

문자열 s1에서 문자열 s2의 첫 번째 발생에 대한 포인터를 반환합니다.

다음 예제는 위에서 언급한 몇 가지 기능을 사용합니다 -

라이브 데모
#include <iostream>
#include <cstring>

using namespace std;

int main () {

   char str1[10] = "Hello";
   char str2[10] = "World";
   char str3[10];
   int  len ;

   // copy str1 into str3
   strcpy( str3, str1);
   cout << "strcpy( str3, str1) : " << str3 << endl;

   // concatenates str1 and str2
   strcat( str1, str2);
   cout << "strcat( str1, str2): " << str1 << endl;

   // total lenghth of str1 after concatenation
   len = strlen(str1);
   cout << "strlen(str1) : " << len << endl;

   return 0;
}

위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -

strcpy( str3, str1) : Hello
strcat( str1, str2): HelloWorld
strlen(str1) : 10

C++의 문자열 클래스

표준 C++ 라이브러리는 문자열을 제공합니다. 위에서 언급한 모든 작업과 추가로 훨씬 더 많은 기능을 지원하는 클래스 유형입니다. 다음 예를 확인해 보겠습니다 -

라이브 데모
#include <iostream>
#include <string>

using namespace std;

int main () {

   string str1 = "Hello";
   string str2 = "World";
   string str3;
   int  len ;

   // copy str1 into str3
   str3 = str1;
   cout << "str3 : " << str3 << endl;

   // concatenates str1 and str2
   str3 = str1 + str2;
   cout << "str1 + str2 : " << str3 << endl;

   // total length of str3 after concatenation
   len = str3.size();
   cout << "str3.size() :  " << len << endl;

   return 0;
}

위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -

str3 : Hello
str1 + str2 : HelloWorld
str3.size() :  10

C 언어

  1. C# 문자열
  2. C++ 연산자
  3. C++ 주석
  4. C++ 클래스 템플릿
  5. 자바 문자열
  6. 자바 열거형 문자열
  7. C++ 변수 및 유형:int, double, char, string, bool
  8. C++ 문자열:strcpy(), strcat(), strlen(), strcmp() 예
  9. C의 문자열:변수 선언 방법, 초기화, 인쇄, 예제
  10. 자바 - 문자열 클래스