C++中字符串如何删减或添加一个字母

C++中字符串如何删减或添加一个字母char*filename;filename="E://hjy//000"想把字符串E://hjy//000变成E://h... C++中字符串如何删减或添加一个字母
char* filename;
filename="E://hjy//000"
想把字符串E://hjy//000变成E://hjy//0000或者E://hjy//00,怎么处理呢?
展开
 我来答
百度网友9308069
2011-12-03 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1949万
展开全部
这是C的字符串,C字符串关键在原始的内存操作。
char* filename;
filename="E://hjy//000"
1、删减一个字母操作比较简单:把要删的位置改为终止符0
filename[strlen(filename)-1-1]=‘\0’; //一个-1是到尾部,另一个1是尾部再退1位
便截断了末尾,变成了E://hjy//00

2、添加一个字母操作,需要扩大内存。
int len=strlen(filename);
filename=(char*)realloc(filename, len+1+1);
strcat(filename,"0");//添加一个0
此时变成E://hjy//0000
希声和寡
2011-12-03 · TA获得超过2.6万个赞
知道大有可为答主
回答量:6437
采纳率:0%
帮助的人:3530万
展开全部
char* filename;
filename="E://hjy//000"

你要这么写的话,那么通过指针filename来改变"E://hjy//000"的值是不可能的,
因为指针filename指向常量区,不是栈区,不能进行赋值操作。

可以用字符数组存储,再进行数组操作实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zz417304374
推荐于2017-11-24 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:101
采纳率:0%
帮助的人:94.6万
展开全部
string类的替换函数:
string &replace(int p0, int n0,const char *s);//删除从p0开始的n0个字符,然后在p0处插入串s
string &replace(int p0, int n0,const char *s, int n);//删除p0开始的n0个字符,然后在p0处插入字符串s的前n个字符
string &replace(int p0, int n0,const string &s);//删除从p0开始的n0个字符,然后在p0处插入串s
string &replace(int p0, int n0,const string &s, int pos, int n);//删除p0开始的n0个字符,然后在p0处插入串s中从pos开始的n个字符
string &replace(int p0, int n0,int n, char c);//删除p0开始的n0个字符,然后在p0处插入n个字符c
string &replace(iterator first0, iterator last0,const char *s);//把[first0,last0)之间的部分替换为字符串s
string &replace(iterator first0, iterator last0,const char *s, int n);//把[first0,last0)之间的部分替换为s的前n个字符
string &replace(iterator first0, iterator last0,const string &s);//把[first0,last0)之间的部分替换为串s
string &replace(iterator first0, iterator last0,int n, char c);//把[first0,last0)之间的部分替换为n个字符c
string &replace(iterator first0, iterator last0,const_iterator first, const_iterator last);//把[first0,last0)之间的部分替换成[first,last)之间的字符串

string类的插入函数:
string &insert(int p0, const char *s);
string &insert(int p0, const char *s, int n);
string &insert(int p0,const string &s);
string &insert(int p0,const string &s, int pos, int n);
//前4个函数在p0位置插入字符串s中pos开始的前n个字符
string &insert(int p0, int n, char c);//此函数在p0处插入n个字符c
iterator insert(iterator it, char c);//在it处插入字符c,返回插入后迭代器的位置
void insert(iterator it, const_iterator first, const_iterator last);//在it处插入[first,last)之间的字符
void insert(iterator it, int n, char c);//在it处插入n个字符c

实在不行继续加上查找函数
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式