C++ 복합 데이터 - 문자열

진경천·2023년 9월 11일
0

C++

목록 보기
11/90

문자열 string

char str[ ] = "문자열" 로 표현하며
char형 배열에 문자를 넣은 것이다.
문자열은 항상 끝에 NULL 문자를 넣어 문자열이 끝이 났음을 표시 해야한다.

#include <iostream>
#include <cstring>

using namespace std;

int main(){
	
    char str[] = "abc"
    
    for(int i = 0; i < strlen(str); i++)
    	cout << str[i];
    
    cout << "\n";
    cout << size(str);
    /*
    실제 문자열의 길이는 3이지만 
    문자열의 크기는 NULL 문자를 포함하여 4byte가 나온다.
    */
    
    return 0;
}
  • 코드 실행 결과

    abc
    4

C에서의 문자열 함수 strcpy(), strcmp(), strcat()

< cstring > 헤더파일내의 함수로 C언어에서 주로 사용한다

#include <iostream>
#include <cstring>
#include <cstdlib>

using namespace std;

int main() {;
    char str1[] = "hello";
    char str2[] = "hello";
    char str3[6];
    char str4[] = "100";
    char str5[4];
    int num = 200;

    int rescmp = strcmp(str1, str2);
    cout << "strcmp() " << rescmp << endl;
    /*
    -1 : 첫번째 문자열이 사전적으로 앞으로 와야 할 때
    0 : 비교하는 두 문자열이 같을 때
    1 : 두번째 문자열이 사전적으로 앞으로 와야 할 때
   */

    strcpy(str3, str1);
    cout<< "strcpy() " << str3 << endl;
    // str3에 str1을 복사

    cout << "strcat() " << strcat(str1, str2) << endl;
    // str1 뒤에 str2를 붙여서 저장 or 출력

    cout << "atoi() " << atoi(str4) << endl;
    // 정수가 들어간 문자열을 정수형으로 바꿈 실수는 atof()를 사용
    
	sprintf(str5, "%d", num);
    cout << "sprinf() " << str5 << endl;
    // 정수형을 문자열로 형변환을 시킴 2번째 인자의 형태에 따라 다른 형변환도 가능

    return 0;
}
  • 코드 실행 결과

    strcmp() 0
    strcpy() hello
    strcat() hellohello
    atoi() 100
    sprinf() 200

이외에도 입력에는 cin.getlin(문자열, 문자열길이)를 통해
문자열을 입력 받을 수 있다.

C++에서의 문자열 string

< string > 헤더파일을 포함하여 사용하며
string이라는 자료형을 구현하여 문자열로 사용한다.

#include <iostream>
#include <string>

using namespace std;

int main() {

    string str1 = "abcd";
    string str2;

    std::getline(cin, str2);
    // 문자열을 입력 받는다.
    cout << str2 << endl;

    if (str1 == str2)
        cout << "equal" << endl;
    // 문자열을 직접 비교할 수 있다.

    cout << "str1 + str2 " << str1 + str2 << endl;
    cout << "c_str strcmp() " << strcmp(str1.c_str(), str2.c_str()) << endl;
    // + 연산 기호를 붙여 문자열을 붙일 수 있고 
    // c_str()을 붙여 C언어의 문자열 함수 사용가능

    cout << "size " << str1.size() << endl;
    cout << "length " << str1.length() << endl;
    // 크기와 길이를 구한다

    string str3 = to_string(123);
    int num = stoi("100");
    cout << "integer to string " << str3 << endl;
    cout << "stirng to integer " << num << endl;
    // 정수를 문자열로 변환 가능하고 문자열을 정수형으로 변환 가능하다.

    return 0;
}
  • 코드 실행 결과

    abcd
    abcd
    equal
    str1 + str2 abcdabcd
    c_str strcmp() 0
    size 4
    length 4
    integer to string 123
    stirng to integer 100

profile
어중이떠중이

0개의 댓글