* 사용 언어 : C++ String str("abcdef"); - 완료 String str2("abcb"); String str3(" aB c "); String str4(str); - 완료 || 함수 || 예 || 완수 여부 || || charAt || str.charAt(3) == 'd' || 완료 || || compareTo || str2.compareTo("abcb") == 0 || || || compareToIgnoreCase || str2.compareTo("AbCb") == 0 || || || concat || str.concat(str) == "abcdefabcdef" || || || contains || str.contains("bcd") == TRUE || || || endsWith || str.endsWith("ef") == TRUE || || || startsWith || str.startsWith("abc") == TRUE || 완료 || || equals || str.equals(new String("abcdef")) == TRUE || 완료 || || equalsIgnoreCase || str.equalsIgnoreCase(new String("ABcdEf")) == TRUE || || || indexOf || str2.indexOf("b") == 1 || 완료 || || isEmpty || str.isEmpty == FALSE || 완료 || || lastIndexOf || str2.lastIndexOf("b") == 3 || 완료 || || length || str.length() == 6 || 완료 || || replace || str.replace("bc", "ad") == "aaddef" || || || split || str.split("c") == {"ab", "def"} || || || subString || str.subString(2, 4) == "cd" || 완료 || || format || String::format("참석자 : %d명", 8) == "참석자 : 8명" || || || trim || str3.trim() == "aB c" || 완료 || || toLower || str3.toLower() == " ab c " || || || toUpper || str.toUpper() == "ABCDEF" || || || valueOf || String::valueOf(3) == "3" || || == 소스 코드 === {{{ #include using namespace std; class String{ private: char* value; int offset; int count; int size; public: String(){ value = NULL; offset = 0; count = 0; size = 0; } String(const char* original){ // 길이 파악 size = 0; for(;original[size] != '\0'; size++); count = size; // value에 데이터 복사 value = new char[size]; for(int i=0; i < size; i++) value[i] = original[i]; offset = 0; } String(String& str, int o, int c){ value = str.value; size = str.size; offset = o>=size? 0: o; count = c>size? size: c; } String subString(int off1, int off2){ if(off1 < 0 || off2 < 0 || off1 > off2) return String(); String str(*this, offset+off1, off2-off1); return str; } int length() { return size; } bool equals(String &str){ if(count != str.count) return false; for(int i=0; i size ); } int indexOf(char c){ for(int i=0; i < count; i++) if(value[offset+i] == c) return i; return -1; } char charAt(int index){ if(index > count || index < 0) return '\0'; else return value[offset+index]; } int lastIndexOf(char c){ int index = -1; for(int i=0; i= count) return false; if(original[i] != value[offset+i]) return false; } return true; } String concat(String &str){ int length = count + str.count; char *nvalue = new char[length+1]; for(int i=0; i= offset; i--){ if(value[i] != ' '){ lastIndex = i+1; break; } } return String(*this, firstIndex, lastIndex-firstIndex); } }; int main(void){ String str1("abcdef"); str1.print(); String str2(str1, 3, 2); str2.print(); String str3 = str1.subString(3, 5); str3.print(); String str4("abcb"); str4.print(); String str5 = str1.concat(str1); str5.print(); String str6(" ab e "); str6.print(); str6 = str6.trim(); str6.print(); String str7("abcdefgh"); String str8("de"); //cout << str7.subString(2, 6).subString(1, 3).equals(str8) << endl; cout << "str2 == str3? : " << str2.equals(str3) << endl; cout << "str1 indexOf b : " << str1.indexOf('b') << endl; cout << "str1 charAt 1 : " << str1.charAt(3) << endl; cout << "str4 lastIndexOf b : " << str4.lastIndexOf('b') << endl; cout << "str1 startsWith abc? : " << str1.startsWith("abc") << endl; cout << "str4 startsWith abc? : " << str4.startsWith("abc") << endl; cout << "str2 startsWith abc? : " << str2.startsWith("abc") << endl; //printf("%d", '0'); return 0; } }}}