문자열은 문자 배열이라고 합니다. 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++>