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을 반환합니다. s1 |
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++ 라이브러리는 문자열을 제공합니다. 위에서 언급한 모든 작업과 추가로 훨씬 더 많은 기능을 지원하는 클래스 유형입니다. 다음 예를 확인해 보겠습니다 -
라이브 데모#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 언어
문자열은 실제로 null로 끝나는 문자의 1차원 배열입니다. 문자 \0. 따라서 null로 끝나는 문자열은 null 뒤에 오는 문자열을 구성하는 문자를 포함합니다. . 다음 선언 및 초기화는 Hello라는 단어로 구성된 문자열을 생성합니다. 배열의 끝에 널 문자를 유지하려면 문자열을 포함하는 문자 배열의 크기가 Hello라는 단어의 문자 수보다 하나 더 커야 합니다. char greeting[6] = {H, e, l, l, o, \0}; 배열 초기화 규칙을 따르면 위의 명령문을 다음과 같이 작성할 수 있습니다. - char
C++는 다음 두 가지 유형의 문자열 표현을 제공합니다. - C 스타일 문자열입니다. 표준 C++에 도입된 문자열 클래스 유형입니다. C 스타일 문자열 C 스타일 문자열은 C 언어에서 시작되었으며 C++ 내에서 계속 지원됩니다. 이 문자열은 실제로 null로 끝나는 1차원 문자 배열입니다. 문자 \0. 따라서 null로 끝나는 문자열은 null 뒤에 오는 문자열을 구성하는 문자를 포함합니다. . 다음 선언 및 초기화는 Hello라는 단어로 구성된 문자열을 생성합니다. 배열의 끝에 널 문자를 유지하려면 문자열을 포함하는 문자