본문 바로가기

프로그래밍 언어27

[c] 문자열 입력 선언방법 char str[LENGTH]; char *c; 마지막에 null문자(\0)가 저장되니 필요한 길이 +1 해서 저장하자. 1. scanf("%s", s); 문제: 공백문자 못읽음 => scanf("%[^\n]s", s); 를 사용하면 공백을 포함한 문자열 받는게 가능하다. - 참고로 scanf는 저렇게 선언된 포인터형 문자열은 못읽는다... 어떻게 해야 하나! malloc해줘야 한다. 문자열 크기만큼! #include #include int main() { //가능 char *s1 = malloc(sizeof(char) * 10); scanf("%s", s1); free(s1); //에러 char *s2; scanf("%s", s2); return 0; } 2. gets(s); 개행문자('\n'.. 2020. 4. 11.
[c++] 문자열 입력받기 문자열 선언 string s char c[LENGTH] 1. cin>>s scanf()와 유사하다. #include using namespace std; int main(void){ string s; cin>>s; } 문제점: 공백이 있으면 잘라버림, 개행 못읽음 ex) hello i am a student를 입력하면 hello만 나온다. 2. getline(cin, s) - getline(istream& is, string& str) - 헤더는 #include #include #include string s; getline(cin, s); - string을 받으므로 char*형은 받지 못한다. - getline은 문자열 자르기에도 사용된다. 문제점: 엔터(개행문자)까지 읽어버려서 버퍼에 엔터가 들어감... 2020. 4. 11.
[c++] STL map container 사용 특징 1. pair형태로 저장 map m; ex) map m; 2. 노드 기반의 균형이진트리구조, logN의 검색속도 보장 3. key는 고유하다. 중복 불가능 4. key값을 기준으로! 자동 정렬된다. default 는 오름차순 cf) unordered_map은 정렬되지 않은 map으로 hash table기반이고 map은 레드블랙트리 기반이다. RB Tree(레드블랙트리)는 BST에 self-balancing 기능을 추가한 것으로 O(logN)을 보장하며 밸런싱된다. 참고: gracefulprograming.tistory.com/3 [C++] map vs hash_map(unordered_map) 개요 hash_map은 비표준 Container인데 반해(stdext namespace에 포함) unord.. 2020. 3. 11.