>백엔드 개발 >C#.Net 튜토리얼 >C++에서 문자열 사용

C++에서 문자열 사용

黄舟
黄舟원래의
2017-02-06 13:35:041465검색

C 언어를 처음 사용하여 문자열을 처리할 때는 매우 번거로울 것입니다. C 언어에는 해당 문자열 처리 기능이 부족합니다. 특정 문자열 기능을 구현하려면 직접 수행해야 합니다. 그러나 C++의 경우 문자열 처리가 매우 간단해집니다. 오늘은 C++에서 가장 많이 사용되는 문자열 처리 함수에 대해 알아 보겠습니다. 샘플 코드는 https://github.com/chenyufeng1991/CppString에 업로드되어 있습니다.

먼저 C++의 문자열 헤더 파일을 소개합니다.

#include <string>


여기 헤더 파일에는 .h가 없습니다. 그렇지 않으면 헤더 파일이 됩니다. C 언어로.

(1) 문자열 만들기


문자열을 만드는 방법에는 여러 가지가 있는데 가장 일반적인 방법은 복사 생성자

string str("chenyufeng",3);  
cout << str << endl;

cout은 원래 문자열의 시작 부분에서 최신 3자를 복사합니다. 인쇄 결과는 che.

string str2("chenyufeng",2,3);  
cout << str2 << endl;


cout 원본 문자열 시작 부분부터 최신 3자를 복사합니다. index=2. 인쇄된 결과는 eny입니다.

// = :字符串赋值  
str2 = "Robert";  
cout << str2 << endl;


"="를 사용하여 직접 할당을 사용하여 변수에 문자열을 할당할 수도 있습니다. 인쇄 결과는 Robert입니다.


(2) swap: 두 문자열의 값을 교환합니다.

// swap:交换两个字符串的值  
  string string1 = "chen";  
   string string2 = "yufeng";  
   swap(string1, string2);  
   cout << "string1 = " << string1 << ";string2 = " << string2 << endl;


결과를 ​​인쇄합니다. 원래 문자열 값으로 교환되었습니다.


(3)+, 추가: 문자열 추가

// += ,append:在尾部添加字符串  
   string stringOrigin = "chen";  
    string stringAppend = "yufeng";  
    stringOrigin = stringOrigin + stringAppend;  
    cout << "stringOrigin = " << stringOrigin << endl;  
  
    stringOrigin.append("_OK");  
    cout << "stringOriginAppend = " << stringOrigin << endl;


문자열 추가 작업은 원본을 수정합니다. 끈. + 기호를 직접 사용하여 문자열을 추가할 수 있어 매우 편리합니다.


(4) insert : 지정된 위치에 문자열을 삽입

// insert:在指定position插入字符串  
  string stringInsertOrigin = "chenyufeng";  
    stringInsertOrigin.insert(3, "__");  
    cout << "stringInsertOrigin = " << stringInsertOrigin << endl;


위 코드는 indx=3 위치 __underscore를 삽입하면 인쇄된 결과는 che__nyufeng입니다.


(5) 지우기, 지우기 - 문자열 삭제

// erase: 删除字符 
  string stringEraseOrigin = "chenyufeng";  
   stringEraseOrigin.erase();  
   cout << "stringEraseOrigin = " << stringEraseOrigin << endl;  
  
  
   // clear :删除全部字符  
  string stringClearOrigin = "chenyufeng";  
   stringClearOrigin.clear();  
   cout << "stringClearOrigin = " << stringClearOrigin << endl;


위 작업은 실제로 문자열을 지웁니다.


(6) 바꾸기: 문자열 바꾸기

// replace: 替换字符串,某个pos位置开始的size个字符替换成后面的“”字符串  
   string stringReplaceOrigin = "chenyufeng";  
    stringReplaceOrigin.replace(3, 2, "66");  
    cout << "stringReplaceOrigin = " << stringReplaceOrigin << endl;


위 코드는 index=3에서 문자열을 시작합니다. 바꾸기 2 문자가 "66"이고 인쇄된 결과는 che66ufeng입니다.


(7)==,, =: 문자열 크기 비교


C++에서 문자열에 대해 이 연산자를 사용하면 실제로 연산자 오버로딩이 사용됩니다. 문자열의 크기 비교는 문자의 사전 순서 또는 ASCII 코드 값을 기반으로 합니다. 두 문자열의 서로 다른 문자가 비교되거나 특정 문자열의 마지막 숫자가 비교될 때까지 중지합니다.

// ==,<,>,<=,>=:比较字符串  
  string stringLeft = "zhen";  
   string stringRight = "yufeng";  
   if (stringLeft == stringRight)  
   {  
       cout << "equal" << endl;  
   }  
  
   if (stringLeft != stringRight)  
   {  
       cout << "not equal" << endl;  
   }  
  
   if (stringLeft < stringRight)  
   {  
       cout << "stringLeft < stringRight" << endl;  
   }  
  
   if (stringLeft > stringRight)  
   {  
       cout << "stringLeft > stringRight" << endl;  
   }


(8) size, length: 문자열 길이 계산


여기서 문자열 길이 계산 및 C 언어마다 다름 , 끝 부분은 포함되지 않으며 실제 길이가 계산됩니다.

// size(), length():计算字符串长度  
   string stringCount = "chenyufeng";  
    cout << "stringSize = " << stringCount.size() << endl;  
    cout << "stringLength = " << stringCount.length() << endl;


위의 인쇄 결과는 모두 10입니다.


(9) 비어 있음: 문자열이 비어 있는지 확인

// empty():判断字符串是否为空  
  string stringIsEmpty = "";  
    string stringNotEmpty = "chen";  
    if (stringIsEmpty.empty())  
    {  
        cout << "stringIsEmpty == empty" << endl;  
    }  
    else  
    {  
        cout << "stringIsEmpty != empty" << endl;  
    }  
  
    if (stringNotEmpty.empty())  
    {  
        cout << "stringNotEmpty == empty" << endl;  
    }  
    else  
    {  
        cout << "stringNotEmpty != empty" << endl;  
    }


(10) 문자열 입력 및 출력 스트림

// 输入输出stream  
  cout << "请输入一个字符串"<<endl;  
    string stringInput;  
    cin >> stringInput;  
    cout << "stringInput = " << stringInput << endl;


문자열은 C++의 다른 데이터와 유사할 수도 있습니다. 동일한 유형은 입력 및 출력 스트림을 사용합니다. Enter 키를 사용하여 입력 스트림을 종료할 수 있습니다.


(11) max_size: 문자열의 최대 용량입니다.

// max_size:  
  string stringMaxSize;  
    cout << "stringMaxSize = " << stringMaxSize.max_size() << endl;


인쇄된 결과는 18446744073709551599입니다. 문자열이 이 만큼의 문자를 포함할 수 있음을 나타냅니다.


(12)[], at: 요소 액세스 및 수정

// [],at() :元素存取  
  string stringAt = "chenyufeng";  
    cout << "stringAt[3] = " <<stringAt[3] << endl;  
    cout << "stringAt.at(3) = " << stringAt.at(3) << endl;  
  
    stringAt[3] = &#39;6&#39;;  
    stringAt.at(5) = &#39;9&#39;;  
    cout << "stringAt = " << stringAt << endl;


문자열은 배열과 동일할 수 있습니다. 작업을 수행하고 아래 첨자를 사용하여 원본 문자열에 액세스하고 수정합니다.


(13) 비교: 문자열 비교, 0, 1, -1을 반환합니다.

// compare()  
   string stringCompare = "chenyufeng";  
    int aaa = stringCompare.compare("chen"); // > 0  
    int bbb = stringCompare.compare("chenyufeng"); // == 0  
    int ccc = stringCompare.compare("done"); // < 0  
    cout << "aaa = " << aaa << ";bbb = " << bbb << ";ccc = " << ccc << endl;


(14) substr: 하위 문자열 가져오기

// substr  
   string stringSubstr = "chenyufeng";  
   // 从索引为4开始的3个字符 
    cout << "stringSubstr.substr(4,3) = " << stringSubstr.substr(4,3) << endl;  
  
   // 从索引为4开始的所有字符  
  cout << "stringSubstr.substr(4) = " <<stringSubstr.substr(4) << endl;  
  
   // 整个字符  
  cout << "stringSubstr.substr() = " <<stringSubstr.substr() << endl;


(15) find: 특정 문자 찾기

// find   
  string stringFind = "chenyufeng";  
    stringFind.find(&#39;n&#39;);  
    cout << "stringFind.find(&#39;n&#39;) = " << stringFind.find(&#39;n&#39;) << endl;  
  
    cout << "stringFind.find_first_of(&#39;e&#39;) = " << stringFind.find_first_of(&#39;e&#39;) << endl;  
      
    cout << "stringFind.find_last_of(&#39;e&#39;) = " << stringFind.find_last_of(&#39;e&#39;) << endl;

기본 찾기 함수는 문자가 처음 나타나는 인덱스를 반환합니다. find_first_of 및 find_last_of는 각각 특정 문자의 첫 번째 및 마지막 발생의 인덱스입니다.

위 내용은 C++에서 문자열을 사용하는 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.