◈ 이 글은 강의를 위하여 제가 직접 작성한 내용입니다. 따라서 퍼가실 경우, 출처를 명확히 해주시기 바랍니다!!
◈ This ariticle was written by me for teaching. So if you want to copy this article, please clarify the source!!
◈ This ariticle was written by me for teaching. So if you want to copy this article, please clarify the source!!
#include#include // cout << string 을 위해서 선언하여야 함. #include using namespace std; // 문제1. void MakeLogString(string& str) { int length = str.length() + 1 + 22; char* buffer = new char[length]; time_t now=time(NULL); //시간을 구하기 위한 초기화 tm t; localtime_s(&t, &now); //현재 시간 구하기 sprintf_s(buffer, length, "[%04d/%02d/%02d-%02d:%02d:%02d] %s", (t.tm_year+1900), (t.tm_mon+1), (t.tm_mday), (t.tm_hour), (t.tm_min), (t.tm_sec), str.c_str()); str = buffer; delete [] buffer; } // 문제2. void PrintToken(string copy, char token) { int count = 1; while(true) { int idx = copy.find(token); if(idx != -1) { string temp = copy.substr(0, idx); cout << count++ << " : " << temp << endl; copy.erase(0, idx+1); // 토큰까지 삭제하기 위해 +1을 한다. } else { cout << count << " : " << copy << endl; break; } } } int main( ) { // 유니코드용. wcout.imbue(locale("korean")); wstring str = L"유니코드용 스트링 클래스"; str += 46; wcout << str << endl; // 문제 1. string test01 = "start program!!"; MakeLogString(test01); cout << test01 << endl; // 문제 2. string test02 = "바나나@사과@딸기@키위@파인애플@토마토@수박@참외"; PrintToken(test02, '@'); system("pause"); // 강의 코드. string src = "MBC 아카데미 디지털 교육원"; string dest; cout << endl << ">> #include 없이 출력하기." << endl; cout << src.c_str() << endl; cout << endl << ">> 문자열 복사." << endl; dest = src; cout << dest << endl; cout << endl << ">> 문자열의 일부만 복사." << endl; dest = src.substr(0, 12); // 여기서 2번의 소멸자가 호출된다. cout << dest << endl; string str1("MBC 아카데미 "); string str2 = "디지털 교육원"; cout << endl << ">> 문자열 합성." << endl; str1 += str2; cout << str1 << endl; cout << endl << ">> 문자열의 일부만 합성." << endl; str1 += str2.substr(0, 6); cout << str1 << endl; cout << endl << ">> 문자열 비교." << endl; if(src == str1) cout << "같은 문자열." << endl; else cout << "다른 문자열." << endl; cout << endl << ">> 문자열 삭제." << endl; src.erase(3, 9); cout << src << endl; cout << endl << ">> 문자열 길이." << endl; cout << src.size() << " / " << src.length() << endl; cout << endl << ">> 문자열 검색." << endl; string key = "디지털"; cout << "문자열 검색 : " << (int)src.find(key) << endl; // 검색된 문자열의 시작 인덱스를 반환한다, 실패시 -1반환. cout << endl << ">> 문자열 변경." << endl; src.replace(0, 3, "Korean BoroadCast"); cout << src << endl; cout << endl << ">> 문자열 입력." << endl; // cin >> dest; // cout << dest << endl; // char 타입. // char str[128]; // cin >> str; // cin.getline(str, _countof(str)); // cout << str << endl; // string 타입. getline(cin, dest); if(dest.empty()) cout << "아무것도 입력하지 않았습니다." << endl; else cout << dest << endl; if(dest.empty() == false) cout << dest[0] << endl; return 0; }