logo

C++의 문자열 함수

문자열은 문자 배열이라고 합니다. C++에서는 문자 스트림/시퀀스가 char 배열에 저장됩니다. C++에는 문자열을 나타내는 데 사용되는 std::string 클래스가 포함되어 있습니다. C++의 가장 기본적인 데이터 유형 중 하나이며 수많은 내장 함수 세트가 함께 제공됩니다. 이번 글에서는 문자열 계산의 기능을 살펴보겠습니다.

std::string이란 무엇입니까?

std::string은 C++98부터 C++의 클래스입니다. 이 클래스는 텍스트 문자열의 표준 표현입니다. 여기에는 찾기, 바꾸기, 연결, 비교 등과 같은 몇 가지 일반적인 문자열 작업이 포함됩니다. 헤더 파일.



문자열 선언 및 초기화

std::string company = 'techcodeview.com!';>

C++에서 일반적으로 사용되는 문자열 함수

std::string 클래스에는 몇 가지 일반적인 문자열 작업을 제공하는 함수가 포함되어 있습니다. 아래 표에는 C++에서 가장 일반적으로 사용되는 함수 중 일부가 포함되어 있습니다.

예 아니오.

범주



함수 및 연산자

기능성

1.



스트링 빌더
문자열 길이

길이() 또는 크기()

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

2.

캐릭터에 접근하기

인덱싱(배열[인덱스] 사용)

배열 인덱싱을 사용하여 개별 문자에 액세스합니다.

에()

지정된 인덱스의 문자에 액세스하는 데 사용됩니다.

삼.

문자열 추가 및 연결

+ 연산자

+ 연산자는 두 문자열을 연결하는 데 사용됩니다.

추가()

Append() 함수는 한 문자열을 다른 문자열의 끝에 추가합니다.

4.

문자열 비교

== 연산자

== 연산자를 사용하여 문자열을 비교할 수 있습니다.

비교하다()

Compare() 함수는 비교 결과를 나타내는 정수 값을 반환합니다.

5.

하위 문자열

하위 문자열()

substr() 함수를 사용하여 문자열에서 부분 문자열을 추출합니다.

6.

수색

찾다()

find() 함수는 부분 문자열이 처음 나타나는 위치를 반환합니다.

7.

문자열 수정

바꾸다()

문자열의 일부를 수정하려면 replacement() 함수를 사용하십시오.

끼워 넣다()

insert() 함수는 지정된 위치에 하위 문자열을 추가합니다.

삭제()

문자열의 일부를 제거하려면 erasure() 함수를 사용하십시오.

8.

변환

c_str()

std::string에서 C 스타일 문자열을 얻으려면 c_str() 함수를 사용할 수 있습니다.

메모: 위 함수는 C 스타일 문자열(문자 배열)이 아닌 C++ 스타일 문자열(std::string 개체)에만 작동합니다.

1. 문자열 길이 - length() 또는 size()

다음 중 하나를 사용하여 문자열의 길이(문자 수)를 찾을 수 있습니다. 길이() 또는 크기() std::string 클래스의 함수입니다.

통사론

string_object. size() or string_object. length()>

매개변수

  • 이 함수는 매개변수를 사용하지 않습니다.

반환 값

  • 이 함수는 문자열 객체의 문자 수를 반환합니다.

std::string text = 'geeksforGeeks'; int length = text.length(); //or int length = text.size();>

문자열의 길이를 반환합니다. 텍스트 13입니다.

2. 문자 접근 – at()

일반적으로 다음을 사용하여 문자열의 문자에 액세스할 수 있습니다. [] 배열 첨자 연산자 그리고 인덱싱. 그러나 std::string에는 다음과 같은 함수도 있습니다. 에() 문자열의 문자에 액세스하는 데 사용할 수 있습니다.

통사론

string_object. at( index );>

매개변수

    index : 문자열에서 해당 문자의 위치를 ​​나타냅니다.

반환 값

  • 이 함수는 현재 위치에 있는 문자를 반환합니다. 색인.

std::string str = 'GEEKSFORGEEKS'; std::cout << str.at(3);>

std::cout은 인덱스 3에 있는 문자인 K를 콘솔에 인쇄합니다.

3. 문자열 연결 - 추가() 또는 + 연산자

다음 두 가지 방법을 사용하여 C++에서 문자열을 연결할 수 있습니다.

1. + 연산자

+ 연산자는 문자열 연결을 수행하기 위해 std::string 클래스에 오버로드됩니다.

통사론

string_object1 + string_object2>

std::string firstName = 'Geeks'; std::string lastName = 'forGeeks'; std::string fullName = firstName + ' ' + lastName;>

+ 연산자는 두 문자열을 연결하는 데 사용됩니다. 문자열 fullName은 techcodeview.com가 됩니다.

2. 추가()

Append() 함수는 두 문자열을 연결하는 또 다른 멤버 함수입니다.

통사론

string_object1. append ( string2 )>

매개변수

    string2: 이 함수는 추가할 문자열을 매개변수로 사용합니다. C 또는 C++ 스타일 문자열일 수 있습니다.

반환 값

  • 최종 문자열에 대한 참조입니다.
std::string base = 'Hey! Geeks'; base.append(' Welcome to techcodeview.com!'); // Append a string>

Append() 함수는 한 문자열을 다른 문자열의 끝에 추가합니다.

4. 문자열 비교 – Compare() 또는 == 연산자

연결과 마찬가지로 두 가지 방법을 사용하여 문자열 비교를 수행할 수 있습니다.

1. == 연산자

항등 연산자는 std::string 클래스에서 이 작업을 위해 오버로드되므로 두 문자열을 비교하는 데 사용할 수 있습니다.

통사론

string_object1 == string_object2>

이 반환됩니다 진실 두 문자열이 모두 같으면 그렇지 않으면 반환됩니다. 거짓.

std::string str1 = 'apple'; std::string str2 = 'banana'; if (str1 == str2) { std::cout << 'Strings are equal'; } else { std::cout << 'Strings are not equal'; }>

여기서 == 연산자가 반환할 때 문자열이 같지 않음이 인쇄됩니다. 거짓.

2. 비교()

Compare() 함수는 두 문자열을 비교하는 데 사용할 수 있는 std::string 클래스의 멤버 함수입니다.

통사론

str1. compare( str2 );>

매개변수

    str2: 비교할 문자열입니다. C 또는 C++ 스타일 문자열일 수 있습니다.

반환 값

  • 문자열이 같으면 반환 영.
  • str1이 str2보다 크면 값을 반환합니다. >0
  • str2가 str1보다 크면 값을 반환합니다. <0

string str1 = 'Geeks'; string str2: = 'Geeksfor'; int result = str1. compare (str2);>

str2가 str1보다 크므로 결과에는 0보다 작은 값이 포함됩니다.

비교 함수()를 사용하여 str2의 하위 문자열을 비교할 수도 있습니다.

bash 환경 변수가 설정되어 있는지 확인
str1.compare(position, length, str2);>

어디,

    position : 첫 번째 문자 하위 문자열의 위치입니다. 길이: 부분 문자열의 길이. str2: 비교할 문자열 개체입니다.

5. 검색 – find()

우리는 찾다() std::string 클래스의 함수는 주어진 문자나 하위 문자열이 문자열이나 문자열의 일부에 있는지 확인합니다.

find() 구문

str1.find(var);>

매개변수

    var: C 스타일 문자열, C++ 스타일 문자열 또는 문자열에서 검색할 문자일 수 있습니다.

반환 값

  • 문자열에서 해당 문자 또는 하위 문자열이 처음 나타나는 위치에 대한 포인터를 반환합니다.

std::string text = 'C++ Programming'; int position = text.find('Programming'); // Find the position of a substring>

위치 변수에는 프로그래밍 문자열 텍스트의 첫 번째 발생 시작 부분인 4가 포함됩니다.

6. 하위 문자열 생성 - substr()

우리는 substr() 함수 문자열의 일부를 새 문자열 객체로 생성합니다. std::string 클래스의 멤버 함수입니다.

C의 substr() 구문

str1. substr ( start, end );>

매개변수

    start: 생성할 하위 문자열의 시작 위치입니다. end: 생성할 하위 문자열의 끝입니다.

반환 유형

  • 새로 생성된 문자열 객체를 반환합니다.

std::string text = 'Hello, World!'; std::string sub = text.substr(7, 5); // Extract 'World'>

위의 예에서. 그만큼 보결 문자열에는 World가 포함됩니다.

문자열 수정

다음 함수를 사용하면 현재 문자열을 수정할 수 있습니다.

1. 삽입()

insert() 함수를 사용하면 문자열을 추가할 수 있을 뿐만 아니라 지정된 위치에 추가할 수도 있습니다. 또한 std::string 클래스의 멤버 함수이기도 합니다.

통사론

str1. insert (index, str2);>

매개변수

    str2: 삽입할 문자열입니다. index : 새 문자열을 삽입할 위치

반환 유형

  • str1에 대한 참조입니다.

std::string text = 'I have a cat.'; text.insert(9, ' black'); // Insert ' black' at position 9>

2. 교체()

replacement() 함수는 문자열의 일부를 주어진 다른 문자열로 바꿉니다. 삽입과 달리 새 문자열을 삽입할 부분의 문자가 제거됩니다.

통사론

str1. replace ( index, size, str2 );>

매개변수

    index: 새 문자열 교체를 시작할 위치의 인덱스입니다. size: 교체할 문자열 부분의 길이입니다. str2: 삽입할 새 문자열입니다.

반환 유형

  • str1에 대한 참조입니다.

std::string text = 'I like dogs.'; text.replace(7, 4, 'cats'); // Replace 'dogs' with 'cats'>

3. 지우기()

erasure() 함수는 문자나 문자열의 일부를 제거하는 데 사용되는 std::string 클래스의 멤버 함수입니다.

통사론

str1 .erase( start, end);>

매개변수

    start: 시작 위치. 끝: 끝 위치.

반환 유형

  • str1에 대한 참조입니다.

std::string text = 'This is an example.'; text.erase(5, 3); // Erase 'is '>

std::string을 C 문자열로 변환 – c_str)_

c_str() 함수는 C++ 스타일 문자열(예: std::string 객체)을 C 스타일 문자열(예: 문자 배열)로 변환하는 데 사용되는 멤버 함수입니다.

통사론

str1.c_str()>

매개변수

  • 이 함수는 매개변수를 사용하지 않습니다.

반환 값

  • 동등한 문자 배열에 대한 포인터입니다.

std::string str = 'C++'; const char* cstr = str.c_str()>

C++의 문자열 함수 예

아래 코드는 위에 지정된 문자열 함수의 사용을 보여줍니다.

C++




// C++ Code to demostrate various functions available in> // String class> > #include> #include> > using> namespace> std;> > int> main()> {> >// Creating and initializing strings> >string greeting =>'Hello, World!'>;> >cout << greeting << endl;> >string name;> > >// Input from the user> >cout <<>'Enter your name: '>;> >cin>> 이름;> >cout << name << endl;> > >// String length> >int> length = greeting.length();> >cout << length << endl;> > >// Accessing characters> >char> firstChar = greeting[0];> >char> secondChar = greeting.at(1);> >cout << firstChar <<>' '> << secondChar << endl;> > >// Appending and concatenating strings> >string firstName =>'Geek'>;> >string lastName =>'Geeks'>;> >string fullName = firstName +>' '> + lastName;> >cout << fullName << endl;> >string base =>'Hello'>;> >cout << base << endl;> >base.append(>' World!'>);> >cout << base << endl;> > >// String comparison> >string str1 =>'apple'>;> >string str2 =>'banana'>;> >if> (str1 == str2) {> >cout <<>'Strings are equal'> << endl;> >}> >else> {> >cout <<>'Strings are not equal'> << endl;> >}> > >int> result = str1.compare(str2);> >if> (result == 0) {> >cout <<>'Strings are equal'> << endl;> >}> >else> if> (result <0) {> >cout <<>'str1 comes before str2'> << endl;> >}> >else> {> >cout <<>'str1 comes after str2'> << endl;> >}> > >// Substrings> >string text =>'Hello, World!'>;> >cout << text << endl;> >string sub = text.substr(7, 5);> >cout << sub << endl;> > >// Searching> >string searchIn =>'C++ Programming'>;> >size_t> position = searchIn.find(>'Programming'>);> >if> (position != string::npos) {> >cout <<>'Found at position '> << position << endl;> >}> >else> {> >cout <<>'Not found'> << endl;> >}> > >// Modifying strings> >string modify =>'I like dogs.'>;> >modify.replace(7, 4,>'cats'>);> >cout << modify << endl;> >modify.insert(6,>' black'>);> >cout << modify << endl;> >modify.erase(6, 6);> >cout << modify << endl;> > >// Conversion> >string str =>'C++'>;> >const> char>* cstr = str.c_str();> >cout << cstr << endl;> > >return> 0;> }>

>

>

산출

Hello, World! Enter your name: Geeks Geeks 13 H e Geek Geeks Hello Hello World! Strings are not equal str1 comes before str2 Hello, World! World Found at position 4 I like cats. I like black cats. I like cats. C++>