용어 순서가 지정된 문자 시퀀스를 의미합니다. C ++에서 클래스의 객체를 사용하여 문자 시퀀스를 나타낼 수 있습니다. 이를위한 정의를 제공하는 클래스를 String 클래스라고합니다. String 클래스는 문자를 단일 바이트 문자에 대한 액세스를 허용하는 기능과 함께 바이트 시퀀스로 저장합니다. C ++에서 바깥 쪽 구분 기호는 큰 따옴표입니다. 이 'C ++의 문자열'기사에서는 다음 주제에 대해 설명합니다.
- 문자열 클래스와 문자 배열 차이
- C ++에서 문자열 선언 및 초기화
- C ++의 문자열 작업
- 문자열 크기
- 문자열 연결
- 문자열 추가
- 문자열 검색
문자열 클래스와 문자 배열 차이
String 클래스 | 문자 배열 |
문자열 클래스는 문자 스트림으로 표현할 수있는 객체를 정의하는 클래스입니다. | 문자 배열은 단순히 문자 배열입니다. |
문자열의 경우 메모리가 동적으로 할당되므로 필요에 따라 런타임에 더 많은 메모리를 할당 할 수 있습니다. | 문자 배열의 크기는 정적으로 할당되어야하므로 필요한 경우 런타임에 더 많은 메모리를 할당 할 수 없습니다. |
String 클래스는 문자열에 대한 다양한 작업을 허용하는 여러 기능을 정의합니다. | 문자 배열은 문자열을 조작하는 많은 내장 함수를 제공하지 않습니다. |
구현과 비교할 때 문자열은 문자 배열보다 느립니다. | 문자 배열의 구현은 더 빨리. |
C ++에서 문자열 선언 및 초기화
C ++에서 문자열 초기화는 매우 간단합니다!. 다음 방법 중 하나를 사용할 수 있습니다.
네임 스페이스 std 문자열 std_string 사용
또는
std :: string std_string
#include using namespace std int main () {char ch [12] = { 'H', 'e', 'l', 'l', 'o', '', 'b', 'y', '' , 'c', 'h', ''} string st = 'Hello by st'std :: string std_st = 'Hello by std_st'cout<< ch << endl cout << st << endl cout << std_st << endl return 0 }
산출:
안녕하세요 채널 안녕하세요 안녕하세요 std_st 안녕하세요
이 예에서는 문자 배열 (ch)과 문자열 cl을 모두 표시했습니다.ass (st 및 std_st) 초기화 메서드. 먼저, 12 개의 요소를 포함하고 널 문자로 끝나는 문자 배열 ch [12]를 정의하여 문자 배열 방법을 사용했습니다. 두 번째 부분에서는 문자열 클래스 메서드를 사용했습니다.
C ++의 문자열 작업
문자열 클래스를 사용할 때의 장점은 C ++에 여러 내장 함수를 조작 할 수 있다는 것입니다. 이것은 프로그래밍을 쉽고 효과적으로 만듭니다. 중요한 문자열 조작 함수를 몇 가지 예를 통해 이해해 보겠습니다.
자바에서 프로그램 종료
문자열 크기 : size () 및 length () 메서드는 모두 개체의 크기를 반환하는 데 사용할 수 있습니다.
비용<< st.length() <산출:
11 11문자열 연결 : 단순히 + 연산자를 사용하여 둘 이상의 문자열을 연결할 수 있습니다.
자바 경로를 변경하는 방법string new_string = st + '및'+ std_st cout<< new_string <산출:
안녕하세요 by st, 안녕하세요 by std_st추가 문자열 : .append (string) 클래스 멤버 함수는 문자열의 특정 문자 위치에 문자열을 연결하고 추가하는 데 사용할 수 있습니다. 프로그래머가 str.append (str1, p, n)을 넣으면 str1 문자열의 p 위치에서 n 개의 문자가 str 끝에 추가됨을 의미합니다.
string str = 'I enjoy learning'string str1 = 'Python, C ++ or C'str.append (str1, 8, 3) cout<< str << endl산출:
나는 C ++ 배우는 것을 즐긴다문자열 검색 : find () 멤버 함수를 사용하여 다른 문자열 내에서 첫 번째 문자열을 찾을 수 있습니다. find ()는 pos 위치에서 시작하여 string haystack 내부의 string needle을 찾고 needle이 처음 나타나는 위치를 반환합니다. rfind () 함수는 전달 된 문자열의 마지막 항목을 반환한다는 점을 제외하면 비슷하게 작동합니다.
string haystack = 'Hello World!' 문자열 바늘 = 'o'cout<< haystack.find(needle)<산출:
44 7 4294967295첫 번째 cout 명령은 건초 더미 문자열에서 'o'가 처음 나타나는 인덱스 인 '4'를 인쇄합니다. 'World'에서 'o'를 원하면 첫 번째 발생을지나도록 'pos'를 수정해야합니다. haystack.find (needle, 4)는 다시 4를 반환하고 haystack.find (needle, 5)는 7을 반환합니다. 하위 문자열이 없으면 find ()는 std :: string :: npos를 반환합니다.
Npos는 size_type 유형이 나타낼 수있는 최대 값과 동일한 특수 값입니다. 여기서는 4294967295입니다. 일반적으로 문자열 인덱스를 예상하는 함수의 문자열 표시기의 끝으로 사용되거나 문자열 인덱스를 반환하는 함수의 오류 표시기로 사용됩니다.
이 간단한 코드는 str2에서 'C ++'의 모든 항목에 대한 문자열을 검색하고 해당 위치를 인쇄합니다.
string str2 = 'C ++는 객체 지향 프로그래밍 언어이며 클래스, 상속, 다형성, 데이터 추상화 및 캡슐화를 포함합니다 .C ++는 예외 처리를 허용하고 C ++에서 불가능한 함수 오버로딩은 강력하고 효율적이며 빠른 언어입니다. ' for (string :: size_type i = 0, tfind (tfind = wikistr.find ( 'C ++', i))! = string :: npos i = tfind + 1) {std :: cout<< 'Found occurrence of 'C++' at position ' << tfind << std::endl }산출:
위치 0에서 'C ++'발견 132 위치에서 'C ++'발견 217 위치에서 'C ++'발견#include using namespace std class base {public : void fun_1 () {cout<< 'base class function 1n' } virtual void fun_2() { cout << 'base class function 2n' } virtual void fun_3() { cout << 'base class function 3n' } virtual void fun_4() { cout << 'base class function 4n' } } class derived : public base { public: void fun_1() { cout << 'derived class function 1n' } void fun_2() { cout << 'derived class function 2n' } void fun_4(int x) { coutfun_2 () // 레이트 바인딩 (RTP) ptr-> fun_3 () // 레이트 바인딩 (RTP) ptr-> fun_4 () // 초기 바인딩이지만이 함수 호출은 // 불법 (오류 발생) 기본 유형 및 함수는 // 파생 클래스 // p-> fun_4 (5)} 산출:
파이썬에서 바이너리로 변환기본 클래스 함수 1 파생 클래스 함수 2 기본 클래스 함수 3 기본 클래스 함수 4이것으로 우리는 C ++의 문자열에 대한이 기사를 끝 맺는다. 수행 할 수있는 다양한 작업에 대해 이해 하셨기를 바랍니다. 자세한 내용은 신뢰할 수있는 온라인 학습 회사 인 Edureka의 Java Training을 확인하십시오. 에두 레카 교육 및 인증 과정은 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념에 대해 교육하도록 설계되었습니다.
질문이 있으십니까? 이 블로그의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.