Language/C++

(C++)문자열 관련 함수(substr,find,atoi,to_string,size,getline..)

doheun 2023. 1. 10. 17:35
반응형

문자열을 다룰 때 사용하는 함수

substr(from,to);

string s = "Christino Ronaldo";

    string s1=s.substr(0,5);//Chris
    string s2 = s.substr(3);//istino Ronaldo
    string s3 = s.substr();// Christino Ronaldo

from : 문자열의 시작인덱스
to : 문자열의 마지막인덱스

find()

string s = "Christino Ronaldo";
int a=s.find("tino");
cout << a << '\n'; //5

위의 예시는 찾았을 때 "tino"의 시작 인덱스인 5를 반환한다.
보통 find는 조건문과 함께 사용하거나 찾고싶은 문자의 위치를 알고싶을 때 사용

string::npos

if(s.find("tino") == string::npos)
//tino를 찾지 못했다면

string::npos는 find함수에 의해서 문자열을 찾지 못했을 때 반환

atoi()

string str1 = "12345";
    int n1 = atoi(str1.c_str());
    cout << n1 << '\n';
    //12345
string str2 = "name";
    int n2 = atoi(str2.c_str());
    cout << n2 << '\n';
    //0

if(!atoi(str2.c_str()){
    //문자라면 
    }
if(!atoi(str2.c_str()){
    //숫자라면
    }

문자열이 숫자로만 이루어져 있다면 문자열안의 내용을 int형으로 반환
문자열이 숫자로만 이루어져 있지않다면 0을 반환

to_string()

헤더

#include<string>
int n=12345;
string s=to_string(n);

숫자를 문자열로 바꾸는 함수

char형을 int형으로

int형으로 지정된 변수에 바꾸려는 char형 -'0'

char ch='2';
int num= ch-'0';

//2

size()

string s1="ParkJiSung";
cout << s1.size() <<'\n';
//10

문자열의 크기를 알수 있는 함수

isdigit()

string a = "a3452";
    cout << isdigit(a[0]) << '\n'; //0
    cout << isdigit(a[1]) << '\n'; //0이 아닌 수
    cout << isdigit(a[2]) << '\n'; //0이 아닌 수
    cout << isdigit(a[3]) << '\n'; //0이 아닌 수
    cout << isdigit(a[4]) << '\n'; //0이 아닌 수

C++에서는 숫자나 문자가 섞인 문자열을 한글자씩 판별해주는 기능
숫자라면 숫자를 반환하고 아니면

getline

헤더

#include<string>

띄어쓰기를 포함한 문자열을 한줄로 입력 받을 때 사용한다.
cin은 개행문자를 기준으로 입력을 받기 때문에 띄어쓰기가 있는 문자열은 한번에 입력 받지 못한다.

한줄만 입력 받을 때

string s;
    getline(cin, s);
    cout << s << "\n";

입력
i am student
출력
i am student

여러줄 입력 받을 때

int T;
    string s;
    cin >> T;
    string bufferflush;
    getline(cin, bufferflush);
    for (int i = 0; i < T; i++) {
        getline(cin, s);
        cout << s << '\n';
    }

입력
3
i am student
i am student
i am student

출력
i am student
i am student
i am student

반응형

'Language > C++' 카테고리의 다른 글

(C++)조합  (0) 2023.02.22
(C++)순열  (0) 2023.02.21
(C++)배열의 최댓값,최솟값-max_element,min_element  (0) 2023.02.20
(C++)배열 초기화-memset,fill  (0) 2023.02.08
(C++)vector(동적배열) 정리 및 사용법  (0) 2023.01.10