c:라이브러리_추가가_필요한_자료형

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revisionBoth sides next revision
c:라이브러리_추가가_필요한_자료형 [2022/01/17 15:09] jonghoonc:라이브러리_추가가_필요한_자료형 [2022/01/19 14:17] jonghoon
Line 23: Line 23:
 | ::: | ::: | stod("3.8") $\rightarrow$ 3.8 | | ::: | ::: | stod("3.8") $\rightarrow$ 3.8 |
 | string.substr(start, count) | 문자열을 start 위치부터 start+count-1 위치까지 잘라서 string 자료형으로 반환한다. | "abcde".substr(1,3) $\rightarrow$ "bcd" | | string.substr(start, count) | 문자열을 start 위치부터 start+count-1 위치까지 잘라서 string 자료형으로 반환한다. | "abcde".substr(1,3) $\rightarrow$ "bcd" |
-| string.c_str() | string 자료형인 문자열을 const char 형 배열로 변환하여 반환한다. | "abcde".c_str() $\rightarrow$ "abcde"(type is char[]) |+| string.c_str() | string 자료형인 문자열을 const char형 포인터로 변환하여 반환한다. | "abcde".c_str() $\rightarrow$ "abcde"(type is const char*) |
  
 substr의 경우 인자가 하나만 있으면 start위치부터 끝까지를 반환한다. substr의 경우 인자가 하나만 있으면 start위치부터 끝까지를 반환한다.
Line 29: Line 29:
 다음은 각 함수를 사용하는 코드다. 다음은 각 함수를 사용하는 코드다.
  
-<Code:C++>+<code:C++ | example_string.cpp>
 #include <iostream> #include <iostream>
 #include <string> #include <string>
Line 54: Line 54:
     string sub1 = str1.substr(5);// sub1 = "56789"     string sub1 = str1.substr(5);// sub1 = "56789"
     string sub2 = str1.substr(5,3);// sub2 = "567"     string sub2 = str1.substr(5,3);// sub2 = "567"
 +    string sub3 = sub1 + sub2;// sub3 = "56789567"
          
     const char *ch = str1.c_str(); // ch = "1234.56789"     const char *ch = str1.c_str(); // ch = "1234.56789"
Line 62: Line 63:
     cout << "substr one parameter: " << sub1 << "\t type: " << typeid(sub1).name() << "\n";     cout << "substr one parameter: " << sub1 << "\t type: " << typeid(sub1).name() << "\n";
     cout << "substr two parameter: " << sub2 << "\t type: " << typeid(sub2).name() << "\n";     cout << "substr two parameter: " << sub2 << "\t type: " << typeid(sub2).name() << "\n";
 +    cout << "string + operation: " << sub3 << "\t type: " << typeid(sub3).name() << "\n";
     cout << "str to char array: " << ch << "\t type: " << typeid(ch).name() << "\n";     cout << "str to char array: " << ch << "\t type: " << typeid(ch).name() << "\n";
 } }
-</Code>+</code> 
 + 
 +실행결과는 다음과 같다. 
 + 
 +str: 1234.56789 $\quad$ type: std::_ _cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >\\ 
 +str to int: 1234 $\quad$ type: int\\ 
 +str to double: 1234.56789 $\quad$ type: double\\ 
 +substr one parameter: 56789 $\quad$ type: std::_ _cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >\\ 
 +substr two parameter: 567 $\quad$ type: std::_ _cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >\\ 
 +string + operation: 56789789 $\quad$ type: std::_ _cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >\\ 
 +str to char array: 1234.56789 $\quad$ type: char const*\\ 
 + 
 +g++의 경우 typeid를 나름대로 define하여 쓰고 있어 그냥 실행하면 int는 i로 double은 d로 const char* 는 PKc로 나타난다. 
 +위와 같이 정확한 명칭으로 나타나게 하기 위해서는 
 +<code:shell> 
 +./example_string | c++filt --types 
 +</code> 
 +형식으로 실행을 해야한다. 
 + 
 +===== vector ===== 
 +vector는 다루기 쉬운 동적배열 자료형이다. 
 + 
 +vector에서 지원하는 함수는 다음과 같다. 
 +^ 함수명 ^ 함수 설명 ^ 
 +| vector.begin() | vector의 첫 요소의 주소를 가리키는 포인터를 반환한다. | 
 +| vector.end() | vector의 마지막요소 +1 번째 요소(null값)의 주소를 가리키는 포인터를 반환한다. | 
 +| vector.capacity() | vector의 크기를 반환한다. | 
 +| vector.size() | vector가 실제로 사용하고 있는 크기를 반환한다. | 
 +| vector.at(x) | vector의 x번째 요소를 반환한다. 잘못된 위치를 넣으면 컴파일 타임에서 에러가 발생한다. | 
 +| vector.push_back(x) | vector의 마지막 요소 다음에 x를 추가한다. |
  • c/라이브러리_추가가_필요한_자료형.txt
  • Last modified: 2023/09/05 15:46
  • by 127.0.0.1