字符串添加字符_字符串_根據索引返回字符c++實現


 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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM