C Style #include <cstring> - 문자열의 생성 및 복사 char src[] = "문자열"; int len = strlen(src); // 문자열의 길이를 측정 이 때, strlen은 문자열의 마지막 널값 0을 뺀 채로 반환한다. char* dest = new char[len+1]; // 새로운 문자열이 들어갈 공간 할당 strcpy(dest, src); // 2번째 인자를 1번째 인자로 복사 - 문자열의 비교와 결합 char str1[20] = "abcde"; char str2[] = "fghij"; strcat(str1, str2); // 문자열의 결합 str1 뒤에 str2를 결합한다. 결합한 문자열은 str1에 보관 if( strcmp( str1, "abcdefghij" ) == 0 ) // 문자열의 비교 // 문자열의 내용이 같은 경우 0을 반환한다. |
C++ Style #include <string> - 문자열 생성 및 복사 string src = "C++ Style"; string desc; desc = src; // 문자열 복사 src.size(); // 문자열 길이 - 문자열의 비교와 결합 string str1 = "abcde"; string str2 = "fghij"; str1 += str2; // str1 뒤에 str를 결합, 결합한 문자열은 str1에 보관 if( str1 == "abcdefghij" ) // 문자열의 비교 - 문자열의 검색 string text = "abcdefghijklmnopqrstuvwxyz"; if( sChatMessage.find("m") != sChatMessage.npos ) // string::find()는 검색 후 검색할 단어나 문장이 없을 경우 string::npos를 반환한다. - 문자열의 일부분 얻기 string path = "c:\\My Document\\Pictures\\33.jpg"; // 경로를 표현할 때 조심할 점 \를 2번 쓸 것. 1번은 이스케이프 문자열로 인식되기 때문이다. int len = path.size(); // 문자열의 길이를 얻어둔다. string ext = path.substr( len - 3, 3 ); // 문자열 객체 path에서 끝의 3바이트만 읽어온다. |
C Style과 C++ Style의 조화 1) C 스타일에서 C++ 스타일로의 형변환 char cstyle[] = "What Are You Style?"; string cppstyle; cppstyle = cstyle; // 대입 연산자를 사용해서 대입하면 자동으로 변환한다. 2) string 객체에서 C 스타일의 문자열 얻기 string cppstyle = "I'm cppstyle"; const char* cstyle = NULL; // C 스타일의 문자열을 가리킬 포인터를 준비 cstyle = cppstyle.c_str(); // string 클래스의 c_str() 함수는 C 스타일 문자열의 주소를 반환한다. 이 주소에 포인터 변수 cstyle을 보관한다. 3) C++ 스타일에서 C 스타일로의 변환 string cppstyle = "I'm cppstyle"; char* cstyle = new char[ cppstyle.size() + 1 ]; // C 스타일 문자열을 담을 공간을 준비 strcpy( cstyle, cppstyle.c_str() ); // cppstyle 객체에서 문자열의 포인터를 얻어와서 strcpy() 함수를 호출한다. |
프로그래밍/C, C++