개발자 데뷔!

[C/C++ 2.1] char, string 문자열 입력받기 본문

프로그래밍 언어/C++

[C/C++ 2.1] char, string 문자열 입력받기

물꼮이 2022. 3. 10. 09:57

char 배열 선언

1. 작은 따옴표 사용

char arr[3] = { 'm','i','n' };

 - 작은 따옴표로 한 글자씩 입력

 

2. 큰 따옴표 사용

char vect[9] = "MINQUEST";	// 8글자

 - 큰 따옴표로 한꺼번에 입력

 - 배열 크기 = [ 문자개수 + 1개 (NULL 문자 위치) ] 를 입력하게됨  

 

* 문자열을 char arr[9] ='abcd' 와 같이 작은따옴표로 입력 하면 오류발생한다!! 

 

// 기존 방법 : char vect[5] = { 'A', 'B', 'C', 'D', '\0' };
// 더 쉬운 방법 : char vect[5] = "ABCD";
// 이렇게 하게 되면 문자열 끝에 NULL문자가 자동으로 들어갑니다.
// C언어 규칙에 따라 문자열 마지막에는 NULL문자가 있어야 된 다는 것을 알아두세요.
// char vect[3] = "BBQ";                  //버그발생 : NULL문자 넣을 공간이 없음
// char vect[4] = "BBQ";                  //정상 소스코드

 

 


char 배열 입력받기

	char vect[100];
	cin >> vect;

- 이렇게 입력받아도, vect 의 끝엔 항상 NULL문자가 들어선다! 

 

	char arr[4][7];	
    
	//입력  ***
	for (int i = 0; i < 4; i++) {		//2차원 배열에 문장 여러개 넣는 법
		cin >> arr[i];					// 이렇게 하면 한 LINE 씩 들어감
	}

 

 

char 배열 출력하기 

 - for문으로 한칸씩 돌지 않아도, 다음과 같이 간단히 출력할 수 있다. 

	cout << arr;

공백이 있는 것 / 없는 것

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string s;
    cin >> s;  // 공백이 없는 "asdf"
    getline(cin, s);    // "a s d f"
    cout << s;
    cout << "\n";
    char arr[100];  // "a s d f"
    cin.getline(arr, 100);
    return 0;
}

'프로그래밍 언어 > C++' 카테고리의 다른 글

[C/C++ 6.2] STL Vector  (0) 2022.03.11
[C/C++ 6.1] STL Sorting  (0) 2022.03.11
[C/C++ 2.4] 문자열 Parsing  (0) 2022.03.10
[C/C++ 2.2] string vs char[] 비교  (0) 2022.03.10
[C/C++ 1.2] 입출력 detail  (0) 2021.12.05