C语言字符串替换函数:实现旧字符到新字符的转换技巧
c语言:如何将字符串中指定的字符替换为另一个指定字符
/*功能:将str字符串中的旧字符串替换为新字符串
*参数:str:操作目标oldstr:替换newStr:替换
*返回值:返回替换后的字符串
*版本:V0.2
*/
char*strrpc(char*st)r,char*oldstr,char*newstr){
charbstr[strlen(str)];//转换缓冲区
for(inti=0;i if(!st)rncmp(str+i,oldstr,strlen(oldstr))){//查找目标字符串 strcat(bstr,newstr); i+=strlen(oldstr)-1; else{ strncat(bstr,str+i,1);//将一个字节放入发生冲突的缓冲区 c_str函数的返回值是constchar*,不能直接赋值给char*,所以我们需要进行相应的运算转换。 C++语言提供了两种字符串的实现,比较原始的是C语言的字符串实现。 标准头文件 调用库函数时,客户端程序提供string类型的参数,库函数内部实现使用c-string,从而将string对象转换为char*对象,c_str()提供返回指向constchar*类型的字符数组的指针(可读但不可变)的方法。 #include //#include #include 使用namespacestd; intmain() { stringadd_to="你好!"; conststringadd_on="baby"; constchar*cfirst=add_to.c_str(); constchar*csecond=add_on.c_str(); char*copy=newchar[strlen(cfirst)+strlen(second)+1]; strcpy(copy,cfirst)); strcat(copy,sec); add_to=copy; cout<<"复制:"< 删除[]copy; cout<"add_to:"< return0; } 示例(1) 函数说明:constchar*c_str(); c_str()函数返回一个指向标准C字符串的指针,其内容与该字符串相同。 这是来自C语言以创建兼容性。 注意:要在方法c_str()中使用指针 请务必使用strcpy()函数。 char*c; strings=“1234”; c=s.c_str(); //c指向的最后内容是垃圾,因为s因为一个对象被销毁,其内容被处理(更正:s对象的销毁是在s的生命周期结束时,例如函数返回) 参考资料: 百度百科-c_str
与C语言的其他部分一样,我们将所有C++实现提供的字符串对象分类为c字符串,并且每个c字符串都是char*类型。
这些库函数定义了我们想要使用的每个字符串操作。
示例:
)在String类对象中。C语言中怎样交换两个字符串?
在C语言中,要交换两个字符串,可以使用标准库中的strcpy函数。
具体操作如下:1、声明一个字符指针c。
2.使用strcpy将字符串a的内容复制到c。
3.使用strcpy将字符串b的内容复制到a。
4.使用strcpy将c的内容复制到b。
这样,字符串a和字符串b就交换了。
如果不使用库函数,可以编写自己的str_cpy字符串复制函数。
该函数应该将b的内容复制到a。
请注意,复制时应忽略字符串中尾随的“\0”标记。
函数实现如下:cvoidstr_cpy(char*a,char*b){while(*b!='\0'){*(a++)=*(b++);}*a='\0';}使用这个自定义的str_cpy函数可以覆盖上面的strcpy函数。
接下来,编写swap交换函数。
该函数接收两个字符串指针作为参数:cvoidswap(char*a,char*b){char*c;str_cpy(c,a);str_cpy(a,b);str_cpy(b,c);}中调用交换main函数中的函数完成字符串交换:cintmain(){char*str1="123456";char*str2="654321";swap(str1,str2);//完成swapreturn0;}这样,使用自定义的字符串复制函数和交换函数,就可以实现两个字符串的交换操作。