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,怎么处理呢? 展开
char* filename;
filename="E://hjy//000"
想把字符串E://hjy//000变成E://hjy//0000或者E://hjy//00,怎么处理呢? 展开
3个回答
展开全部
这是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
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
展开全部
char* filename;
filename="E://hjy//000"
你要这么写的话,那么通过指针filename来改变"E://hjy//000"的值是不可能的,
因为指针filename指向常量区,不是栈区,不能进行赋值操作。
可以用字符数组存储,再进行数组操作实现
filename="E://hjy//000"
你要这么写的话,那么通过指针filename来改变"E://hjy//000"的值是不可能的,
因为指针filename指向常量区,不是栈区,不能进行赋值操作。
可以用字符数组存储,再进行数组操作实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
实在不行继续加上查找函数
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
实在不行继续加上查找函数
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询