ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 문자열 다루기
    c++ 2018. 11. 19. 23:09

    문자열 치환

    =

    ex)

    string a = "java", b="C++"

    a = b; //a= "C++"이 된다.


    문자열 비교

    Compare() 함수

    두 문자열이 같으면 0, str보다 사전 순으로 앞에 오면 음수, 뒤에 오면 양수를 리턴한다.


    문자열 연결

    append()

    ex) string a("i");

    a.append("love");


    a = "i love"


    문자열 삽입

    string a("I love c++");

    a.insert(2, "really");


    a = "I really love c++"


    replace()


    a.replace(2,11, "study"); // a= "I study c++"


    문자열길이

    문자열에 포함된 문자 개수를 말하며,

    length(), size() 함수는 문자열의 길이를 리턴한다.

    string객체의 내부 메모리 용량을 리턴하는 capacity()도 있다.

    ex) string a("I love C++");

    int length = a.length(); length = 11;

    int size = a.size(); size = 11;

    int capacity = a.capacity();


    문자열 삭제

    erase()는 문자열의 일부분을 삭제하고

    clear()는 완전히 삭제한다.

    ex)

    string a("I love c++");

    a.erase(0,7); // a의 처음부터 7개의 문자 삭제. a= "c++"로 변경

    a.clear(); // a= "";


    서브스트링

    substr() 함수를 사용하면 문자열에서 일부분을 발췌한 문자열(서브스트링)을 얻을 수 있다.

    ex) string b = "i love c++";

    string c = b.substr(2,4); // b의 인덱스 2에서 4개의 문자 리턴. c = "love" 리턴

    string d = b.substr(2); // b의 인덱스 2에서 끝까지 문자열 리턴. d= "love c++"


    문자열 검색

    find()는 문자열에서 특정 문자나 문자열을 발견하면 첫 번째 인덱스를 리턴한다.

    발견하지 못하면 -1을 리턴한다.


    string e = "i love love c++";

    int index = e.find("love"); // e에서 love 검색. 인덱스 2 리턴

    index = e.find("love", index+1); //e의 인덱스 3부터 "love" 검색. 인덱스 7 리턴

    index = e.find("#c"); // e에서 "C#"을 발견할 수 없음. -1리턴

    index = e.find('v', 7);


    문자열에 있는 각 문자 얻기

    at() 함수와 []연산자는 문자열의 특정 위치에 있는 문자를 리턴한다.

    string f("i love c++");

    char ch1 = f.at(7); // 문자열  f의 인덱스 7에 있는 문자 리턴. 

    char ch2 = f[7]; //f.at(7)과 동일한 표현


    char ch3 = f.at(f.length()-1); // ch3 은 '+'


    문자열의 숫자 변환, stoi()

    <string>헤더파잉ㄹ 삽입

    ex)

    string year = "2014";

    int n = stoi(year); // n은 정수 2014값을 가짐


    문자 다루기

    string은 문자열만 다루지 문자를 다루는 기능은 없다. 문자를 다루는 함수는 <locale> 헤더 파일에 존재한다.

    <locale> 헤더 파일에 있는 topper(), isdigit(), isalpha() 함수가 있다.





    'c++' 카테고리의 다른 글

    std::sort()  (0) 2018.11.22
    vector 컨테이너  (0) 2018.11.22
    cin 과 >>의 허점과 해결방법  (0) 2018.11.07
    cin과 >>로 키 입력받기  (0) 2018.11.02
    #include<iostream>과 std  (0) 2018.11.02
Designed by Tistory.