字符串添加字符_字符串_根据索引返回字符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 }

 

转载于:https://www.cnblogs.com/littlelittleprince/p/10675019.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值