게으른 개발자

[2]명품 C++ Programming -2장[c++프로그래밍 기본](1)-[2장 내용 정리] 본문

C++/명품 C++ Programming

[2]명품 C++ Programming -2장[c++프로그래밍 기본](1)-[2장 내용 정리]

Tomato_Coffee 2022. 5. 6. 14:56

2장에서 배운점

1. '\n' = "\n" : 작은따옴표를 사용하던 큰따옴표를 사용하든 똑같다.

하지만 getline(cin, str, "\n")쓸때는 에러가 난다...-> 여기서는 '\n'을 써야할듯

2. c++에서는 return 0; 생략이 가능하다.

3. using namespace std; 이렇게 하면 std::cout 을 안해도되고 cout만 써도된다.

4. cstring에서 char name1[6] ={............. ,'\0'} 이렇게 뒤에 '\0' 으로 마무리가 되어야 문자열이다. 만약에 없다면 단순문자배열이다.

5. '\0'을 추가하기 위해 배열의 크기는 문자수보다 최소 1은 커야한다.

6. cin>> a;// 그냥cin은 공백(또는 엔터, 탭 등등)이 포함된 문자열을 입력받지못함

-cin은 엔터를 받으면 버퍼에 그대로 엔터가 들어가 있다. 따라서 cin을 써준다음에 cin.ignore()을 사용해서 버퍼를 클리어 해줘야함--> 이렇게 안한다면 cin 다음에 getline을 쓰면 getline에 엔터가 들어가버림....

-getline()함수를 써주면 띄어쓰기나, 다른 delimiter(구분자)를 설정해서 쓸수있다. getline()함수는 버퍼에 엔터를 남기지 않는다 . cin은 안쓰고 getline만 쓸때는 cin.ignore()를 안해줘도 됨.

7.// strlen이 return 해주는 값이unsigned int값이기 때문에 출력이 내가 원하는법으로 안나온것임
// unsigned int는 0부터 41억까지임

8. 2장 8번문제에서 많이 시간이 걸렸다 (이건 문제 풀이에서 자세히 다룰것이다).

9. strtok는 문자열(string)을 토큰(token)처럼 조각조각 내는 함수임

-char* strtok(char* str, char* delimiters);
str을 첫번째 매개변수로 받아서 , 두번째 매개변수로 들어온delimiter를 기준으로 문자열을 잘라서

문자열의 포인터를 하나씩 반환

이 상태에서 또다시 strtok(NULL, " "); 함수를 호출하게 되면 이전에 찾은 구분자 뒤에서 부터 다시 구분자를 찾게 됩니다. strtok 함수는 delimiter를 '\0'으로 바꾸어준다. 문자열의 끝을 만나면, strtok는 NULL을 반환한다.