C++의 문자열

4394 단어 stringscpp
요코소!

다음은 전통적인 방식입니다(C 언어).


  • 기술적으로 데이터 유형은 아니지만 null로 끝나는( \0 ) 문자 배열을 사용합니다.
  • 따라서 할당 및 비교 연산자와 같은 연산자를 적용할 수 없습니다=, <, >, <=, >=.

  • // Declaration of character array
    char s1[10], s2[10];
    s1[10] = "Doge";
    




    // Error Full Code (Don't use at home/work)
    s2 = s1;
    s2 > s1;
    s3 = s1 + s2;
    


    이 코드는 잘못된 배열 작업을 초래합니다.

    C++의 문자열


  • string 클래스는 basic_string 라는 보다 일반적인 템플릿의 전문 지식 클래스입니다.
  • C++에서 클래스를 정의하면 새 데이터 유형이 생성되므로 문자열이 파생된 데이터 유형입니다.
  • 이는 이 클래스에 대해 연산자를 오버로드할 수 있음을 의미합니다.




  • 통사론



    class string{
       // Variables
       // functions
       // operators
    }
    
    string s1;
    s1.function();
    s1.operator(arguments);
    


    문자열 작업은 안전하지만 시간이 많이 걸립니다. 따라서 '문자 배열'(빠르고 적은 작업) 개념은 더 이상 사용되지 않습니다.
    if (speed matters) {
    용도character array} else if (safety and easy manipulation matters) {
    사용string 클래스
    }
    string가 문자 배열보다 안전한 이유는 다음과 같습니다.
  • 당신과 같이 신중한 프로그래머는 끝까지 오버런할 수 있습니다.
    null로 끝나는(null 문자 \0 ) 문자열을 포함하는 배열입니다.
  • 예 - 아래 참조
  • 문자열 클래스에서 이러한 문제를 처리합니다.

  • char s3[10];
    strcpy(s3,"Hello careful programmers.");
    




    문자열도 STL에 있습니다(단, 문자열의 개념은 STL 개념과 별개로 생각됩니다).


  • 문자열은 또 다른 컨테이너 클래스입니다.

  • 문자열 클래스를 사용하려면 문자열 헤더 클래스를 포함해야 합니다. (string.h 아님)
  • #include<string> (문자열 헤더 클래스용)
  • #include<string.h> (C에서, 문자 배열에 적용된 문자열 함수의 경우)



  • String 클래스는 다음과 같이 많은 생성자를 지원합니다.
  • string()
  • string(const char *str)
  • string(const string &str)


  • 연산자
  • = (할당)
  • + (연결)
  • += (연결 할당)
  • == (평등)
  • != (불평등)
  • < (미만)
  • <= (보다 작음)
  • > (초과)
  • >= (보다 큼)
  • [] (첨자)
  • << (삽입)
  • >> (추출)


  • 혼합 작업
  • 문자열 개체를 다른 문자열 개체나 C 스타일 문자열과 혼합할 수 있습니다.
  • C++ 문자열을 문자 const와 연결할 수도 있습니다.


  • 유용한 방법
  • assign()
  • append()
  • insert()
  • replace()
  • erase()
  • find()
  • rfind()
  • compare()
  • c_str()
  • size()


  • 방문 :
  • strings.cpp
  • Templates in C++

  • 잇테키마스! :)

    좋은 웹페이지 즐겨찾기