c语言替换字符的函数,c语言中替换字符串函数

C语言:字符替换。要求用函数replace将用户输入的字符串中的字符t(T)都替换为e(E),并返回替换字符的个数

改成这样就行了

创新互联于2013年成立,是专业互联网技术服务公司,拥有项目网站建设、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元龙陵做网站,已为上家服务,为龙陵各地企业和个人服务,联系电话:18982081108

#includestdio.h

int replace(char a[]);

int main()

{

char a[20];

int n;

scanf("%s", a);

n = replace(a);

printf("%s 替换字符的个数:%d\n", a, n);

return 0;

}

int replace(char a[])

{

int n=0;

int i;

for (i = 0; a[i] != '\0'; i++)

{

if(a[i]=='t') 

{

n=n+1;

a[i]='e';

}

else if(a[i]=='T') 

{

n=n+1;

a[i]='E';

}

}

return n;

c语言中完成一个自定义函数,替换指定字符串中的对应字符的代码

#include "stdafx.h"

#include stdio.h

#include string.h

void replaceChar(char *string, char oldChar, char newChar){

int len = strlen(string);

int i;

for (i = 0; i  len; i++){

if (string[i] == oldChar){

string[i] = newChar;

}

}

}

int main(){

char str[] = "test";

char oldChar = 't';

char newChar = 'w'; 

replaceChar(str, oldChar, newChar);

printf("%s\n", str);

return 0;

}

C语言初学,字符替换

主函数的名字错了。字母顺序反了。

字符串是用数组存储的。你的str变量定义错了,应该是char str[100];

函数调用的写法也是错的。调用函数只写函数名和参数名。而且要写在最后一个printf语句前面,等你输入完成了才能调用函数。

strchange(str,c1,c2);

函数声明则要写在main函数的前面,不是里面。

scanf();后要跟一句getchar();取走一个回车或空格字符,否则下一句scanf无法接收到你输入的字符。

修改后可执行的完整代码如下

#include stdio.h

char*strchange(char*str,char c1,char c2);

main() {

char c1,c2,str[100]; 

printf("请输入字符串:");

scanf("%s",str);

getchar();

printf("请输入要替换的字符:");

scanf("%c",c1);

getchar();

printf("请输入被替换为的字符:");

scanf("%c",c2);

strchange(str,c1,c2);

printf("替换后的字符串为:%s",str);

}

char*strchange(char*str,char c1,char c2){

while(*str){

if(*str==c1){

*str=c2;

}

str++;

}

return str;

}

c语言 字符串替换函数

替换函数主要有strtr(),str_repalce()这两个函数。

首先针对strtr函数第一种方式:

我们看看下面的举例:

?php

echo strtr("I Love you","Lo","lO");

?

得到的结果是:

I lOve yOu

这个结果提醒我们:

1.strtr它是区分大小写的

2.strtr的替换是很特殊的,你注意看后面那个yOu,中间的O被替换的,这显然不是我们的本意。

再举一个特殊例子,说明这个php的sttr函数的怪异

?php

echo strtr("I Love you","Love","");

?

结果是:

I Love you

什么也不会改变,所以strtr需要注意的是:

3.不能被替换为空,也就是末位那个参数不能是空字符串,当然空格是可以的。

再次举例strtr函数的另一种情况:

?php

echo strtr("I Loves you","Love","lOvEA");

?

结果是:

I lOvEs yOu

注意看第三个参数的A,在结果中并没有出现。

4.我不建议用strtr以少换多。

ok,既然这个strtr函数挺麻烦为什么还要用呢?

原因是,它的速度很快。据说,strtr 比 str_replace 快四倍。

5.能用strtr函数的时候一定要用。

第二种情况:

strtr(string,array)

6.strtr符合意愿的使用方法

?php

$table_change = array('you'='her sister');

echo strtr("I Love you",$table_change);

?

结果为:

I Love her sister

7.小技巧:你想到替换什么你就往数组加什么

比如:

?php

$table_change = array('you'='her sister');

$table_change += array('Love' = 'hate');

echo strtr("I Love you",$table_change);

?

结果是:

I hate her sister

再次提醒那个Love 写成love 是行不通的哦。

字符串取代。

语法: string str_replace(string needle, string str, string haystack);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将字符串 str 代入 haystack 字符串中,将所有的 needle 置换成 str。

下例将 %body% 以 black 取代

?php

$bodytag = str_replace("%body%", "black", "body text=%body%");

echo $bodytag;

?

格式:

[@str_replace("要替换的旧内容", "要取代原内容的新字符", $被替换内容的变量名)]

[@str_replace(array('旧1','旧2','旧3'), array('新1','新2','新3'), $被替换内容的变量名)]

[@str_replace(array('旧1','旧2','旧3'), '新内容', $被替换内容的变量名)]

实例:

多对一替换:想把内容字段里所有的p/p标签清除掉,替换成空 [@str_replace(array('p','/p'), '', $Content)]

一对一替换:想把内容字段里所有的br标签换成p [@str_replace('br', 'p', $Content)]

多对多替换:想把内容字段里的br换成br /, 同时p换hr,把/p全清除 [@str_replace(array('br', 'p','/p'), array('br /','hr',''), $Content)]

c语言:如何将字符串中指定的字符替换为另一个指定字符

/*功能:将str字符串中的oldstr字符串替换为newstr字符串

*参数:str:操作目标oldstr:被替换者newstr:替换者

*返回值:返回替换之后的字符串

*版本:V0.2

*/

char*strrpc(char*str,char*oldstr,char*newstr){

char bstr[strlen(str)];//转换缓冲区

memset(bstr,0,sizeof(bstr));

for(int i=0;ilt;strlen(str);i++){

if(!strncmp(str+i,oldstr,strlen(oldstr))){//查找目标字符串

strcat(bstr,newstr);

i+=strlen(oldstr)-1;

}else{

strncat(bstr,str+i,1);//保存一字节进缓冲区

}

}

strcpy(str,bstr);

return str;

}

扩展资料:

c_str函数的返回值是constchar*的,不能直接赋值给char*,所以就需要我们进行相应的操作转化,下面就是这一转化过程。

c++语言提供了两种字符串实现,其中较原始的一种只是字符串的c语言实现。与C语言的其他部分一样,它在c++的所有实现中可用,我们将这种实现提供的字符串对象,归为c-串,每个c-串char*类型的。

标准头文件lt;cstringgt;包含操作c-串的函数库。这些库函数表达了我们希望使用的几乎每种字符串操作。

当调用库函数,客户程序提供的是string类型参数,而库函数内部实现用的是c-串,因此需要将string对象,转化为char*对象,而c_str()提供了这样一种方法,它返回const char*类型(可读不可改)的指向字符数组的指针。例:

#includelt;iostreamgt;

//#includelt;cstringgt;

#includelt;stringgt;//使用头文件string,否则最后coutlt;lt;无法输出add_to

using namespace std;

int main()

{

string add_to="hello!";

const string add_on="baby";

const char*cfirst=add_to.c_str();

const char*csecond=add_on.c_str();

char*copy=new char[strlen(cfirst)+strlen(csecond)+1];

strcpy(copy,cfirst);

strcat(copy,csecond);

add_to=copy;

coutlt;lt;"copy:"lt;lt;copylt;lt;endl;

delete[]copy;

coutlt;lt;"add_to:"lt;lt;add_tolt;lt;endl;

return 0;

}

例(1)

函数声明:const char*c_str();

c_str()函数返回一个指向正规C字符串的指针,内容与本string串相同.

这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string对象转换成c中的字符串样式。

注意:一定要使用strcpy()函数等来操作方法c_str()返回的指针

比如:最好不要这样:

char*c;

string s="1234";

c=s.c_str();

//c最后指向的内容是垃圾,因为s对象被析构,其内容被处理(纠正:s对象的析构是在s的生命周期结束时,例如函数的返回)

参考资料:

百度百科——c_str


分享文章:c语言替换字符的函数,c语言中替换字符串函数
网站URL:http://pwwzsj.com/article/hsjgss.html