일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- C++ gui 라이브러리
- 알고리즘
- JUCE library
- gui
- C++
- 프로그래밍
- JUCE 튜토리얼
- 연결리스트
- vim-go
- C++ library
- 백준
- go
- 자료구조
- 공룡책
- BOJ
- go channel
- tour of go
- 코딩
- JUCE
- Nebula
- LOB
- Docker
- JUCE라이브러리
- OS
- a tour of go
- 리듬게임
- C언어
- c++ heap
- C++ gui
- 운영체제
- Today
- Total
CafeM0ca
[C++11]배열과 문자열 본문
배열 : 연속된 메모리
C++11에서 배열의 초기화
char s[] {"M0ca"}; //가능하다. 신기하군
초기화 끝에 널문자가 들어가면 문자열
char s[] {'M','0','c','a'}; //문자열 x
char s[] {'M','0','c','a','\0'}; //문자열 o
char s[] = "M0ca"; // 문자열 상수(string literal) 자동으로 널문자 삽입
char s[100] = "M0ca"; //s[4]부터 널문자로 초기화
char asc='s'; //아스키코드 s
문자열이 너무 길 때
cout<< "The String is So long long. isn't it?"
cout<< "The String is So" "long long."
"isn't it?"
같은 표현이다. 화이트스페이스(빈칸,탭,캐리지리턴(커서의 위치를 맨 앞으로 이동))로 분리되어 있어도 하나의 문자열 상수로 결합됨.
문자열에서 널문자('\0')을 만나면 그 뒤의 메모리는 읽지 않는다.
cin.getline(char * str,size_t n) -> 한 번에 한 행을 읽기
첫번째 인자에 문자의 주소. 두번째 인자에 읽을 크기. 개행을 읽을 때 까지 두번째 인자만큼 읽는다.
cin.getline(str1,n).cin.getline(str2,n); //두 행을 읽어 각각 str1,str2에 저장
cin.get() -> cin.getline과 동일
get메소드를 연달아 사용하면 문제가 생긴다.
cin.get(str,size); //문제 없음
cin.get(str,size); //앞서 한 행을 읽고 입력버퍼에 개행이 남아 있음 -> 개행을 만남 -> 원하던 작동이 아님
매개변수를 비워두면 문자 하나를 읽는다는 의미다.
cin.get(str,size) //문제없음
cin.get() //문자 하나를 읽어 처리 오버로딩됨
cin.get(str,size) //문제없음
(cin>>str).get() //str을 입력받고 cin객체를 리턴하고 get()을 호출한다. -> 앞서 cin을 사용해도 개행에 영향을 받지 않음.
접두어 - 문자열 앞에 붙는다.
u8-유니코드 문자를 나타내기 위함
cout << u8" 문자열 문자열 ";
R-raw(날 것)문자열. 사용법 : R(내용) , 문자셋(ex: +-".)으로 시작해서 문자셋(ex: ."-+)으로 끝나야한다.
cout <<R(" this is ". Not \" Only ") -> " this is ". Not \" Only "
'Programming > C++' 카테고리의 다른 글
[C++] 런타임 과정에서의 입력 값 (0) | 2017.12.02 |
---|---|
[C++]inline (0) | 2017.11.29 |
[C++]함수 포인터 (0) | 2017.11.29 |
[C++]cctype 라이브러리 (0) | 2017.11.08 |
[C++11]range for문 (0) | 2017.11.08 |