#pragma warning(disable: 4996)
#include <iostream>
#include <cstring>
 
using namespace std;
 
int main()
{
    {
        char str[] = "abc";
        cout << str << endl;
        cout << str[0<< endl;
        cout << str[1<< endl;
        cout << str[2<< endl;
        cout << str[3<< endl;
        cout << sizeof(str) << endl// 길이가 3이 아니라 4
 
        cout << (int)str[0<< endl;
        cout << (int)str[1<< endl;
        cout << (int)str[2<< endl;
        cout << (int)str[3<< endl// 문자열의 마지막은 항상 '\0'
        cout << strlen(str) << endl// 문자열의 길이가 나온다.
 
 
        str[1= '\0';
        cout << sizeof(str) << endl// 4(배열의 길이, 변함 없음)
        cout << strlen(str) << endl// 1('\0' 이전까지 길이)
    }
    {
        char str[100= "hello";
        cout << (int)str[99<< endl// "hello" 뒤는 전부 '\0'
    }
    {
        char str0[] = "hello";
        char str1[] = "hello";
 
        // 비교가 제대로 안 됨. 주소 값 비교임
        if (str0 == str1)
            cout << "true" << endl;
 
        // 같으면 0 다르면 -1 또는 1
        int result = strcmp(str0, str1);
        cout << result << endl;
    }
    {
        // 문자열 복사
        char str0[100];
        char str1[] = "hello";
 
        strcpy(str0, str1);
    }
    {
        // 문자열 붙이기
        char str0[100= "hello";
        char str1[] = "world";
 
        strcat(str0, str1);
    }
    {
        // 문자열을 정수로 변경
        char str[] = "100";
        int num = atoi(str);
    }
    {
        // 문자열를 실수로 변경
        char str[] = "1.1";
        float num = atof(str);
    }
    {
        // 정수를 문자열로 변경
        int num = 100;
        char str[100];
 
        sprintf(str, "%d", num);
    }
    {
        char str[6];
        // 5개 이상의 문자열을 입력 받게 되면 문제
        // 공백이 있는 경우 공백 앞까지만 입력 받음(a b 라고 입력하면 a만 받음)
        // cin >> str;
 
        // 5개만 입력을 받고 개행 문자까지만 받음
        cin.getline(str, 6);
        cout << str << endl;
    }
}
 
cs

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

구조체(struct)  (0) 2020.07.13
string  (0) 2020.07.13
다차원 배열  (0) 2020.07.13
배열(Array)  (0) 2020.07.13
비트연산자  (0) 2020.07.03

+ Recent posts