1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 5 char findCharByIndex(char* stringValue,int index); 6 int charLength(char* stringValue); 7 char* addCharToString(char* stringValue,char charValue); 8 char* addStringToString(char* stringPFirst,char* stringPTwo); 9 int main() 10 { 11 12 // char* name = "Hell"; 13 // char charValue = 'o'; 14 // char* resultP = addCharToString(name,charValue); 15 // cout << resultP << endl; 16 // //釋放掉new出來的內存 17 // delete [] resultP; 18 // cout << "釋放內存成功" << endl; 19 20 char* fName = "Hello"; 21 char* lName = "World"; 22 char* newName = addStringToString(fName,lName); 23 cout << newName << endl; 24 delete [] newName; 25 cout << "釋放內存成功" << endl; 26 return 0; 27 } 28 //根據索引號返回字符串中對應的字符 29 char findCharByIndex(char* stringValue,int index) 30 { 31 return stringValue[index]; 32 } 33 //幫助方法 34 //統計字符串的字符個數,方便new數組 35 int charLength(char* stringValue) 36 { 37 int count = 0; 38 while(stringValue[count] != 0) 39 { 40 count++; 41 } 42 //返回字符串的個數 不包含0字符 43 return count; 44 } 45 //將第二個參數的字符添加到第一個參數字符串的末尾 實現添加字符的功能 46 char* addCharToString(char* stringValue,char charValue) 47 { 48 int stringLength = charLength(stringValue); 49 //stringLength+2 +2包含結束標志和新添加入的字符 50 char* newString = new char[stringLength+2]; 51 for(int i=0; i<stringLength; i++) 52 { 53 newString[i] = stringValue[i]; 54 } 55 //倒數第二個索引是新添加的字符 56 newString[stringLength] = charValue; 57 //最后一個索引添加字符串結束標志 58 newString[stringLength+1] = 0; 59 60 stringValue = newString; 61 return stringValue; 62 } 63 //將第二個參數的字符串添加到第一個參數字符串的末尾 實現添加字符串的功能 64 char* addStringToString(char* stringPFirst,char* stringPTwo) 65 { 66 int stringPFirstLength = charLength(stringPFirst); 67 int stringPTwoLength = charLength(stringPTwo); 68 int resultLength = stringPFirstLength + stringPTwoLength; 69 //+1 包含結束標志字符0 70 char* newP = new char[resultLength+1]; 71 for(int i=0; i<stringPFirstLength; i++) 72 { 73 newP[i] = stringPFirst[i]; 74 } 75 //將第二個字符串添加到新創建的字符串中 76 for(int i=0; i<stringPTwoLength; i++) 77 { 78 newP[stringPFirstLength+i] = stringPTwo[i]; 79 } 80 //最后一個字符是結束字符0 81 newP[resultLength] = 0; 82 return newP; 83 }