当前位置:首页 » 编程语言 » c语言替换字符串

c语言替换字符串

发布时间: 2022-02-04 19:57:16

c语言如何将一个字符串里某些字符代替另外一个字符串来

用char *strstr(const char *str, const char *strSearch ); 函数找到源字符串中,你要替换的字符串。该函数返回要替换的字符串的指针。然后将替换的字符串赋值给该指针的位置。

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

BOOLstrrep(char*strRes,char*from,char*to)

{

inti;

BOOLflag=0;

char*p,*q,*ts;

for(i=0;strRes[i];++i)

{

if(strRes[i]==from[0])

{

p=strRes+i;

q=from;

while(*q&&(*p++==*q++));

if(*q=='')

{

ts=(char*)malloc(strlen(strRes)+1);//分配内存strcpy(ts,p);//复制字符串
strRes[i]='';

strcat(strRes,to);//连接字符串
strcat(strRes,ts);

free(ts);//释放内存
flag=1;//成功
}

}

}

returnflag;/*返回是否成功*/

}

⑶ C语言字符串替换代码

把你的代码直接复制、粘贴,运行出来的结果里,字符串b并没有变啊!

添加了几句puts语句,用来显示中间过程的字符串的状态,如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
//替换某串
intmain()
{
chars[]={"abcdefcdff"};
chara[]={"cd"};
charb[4]={"123"};
chart[4];
char*ptr;
//s中的a都用b替代

while(ptr=strstr(s,a))
{
puts("STRING---b:");
puts(b);
puts("STRING---s:");
puts(s);
strcpy(t,ptr+strlen(a));
puts("STRING---b:");
puts(b);
puts("STRING---t:");
puts(t);
strcpy(ptr,b);
puts("STRING---ptr:");
puts(ptr);
strcpy(ptr+strlen(b),t);
puts("STRING---s:");
puts(s);
puts(" ");
}
puts("STRING---s:");
puts(s);
return0;
}

运行截图:

⑷ C语言中如何替换一个字符串中的字符

include
<stirng.h>
void
strrpl(char
*s,
const
char
*s1,
const
char
*s2)
{
char
*ptr;
while
(ptr
=
strstr(s,
s1))
/*
如果在s中找到s1
*/
{
memmove(ptr
+
strlen(s2)
,
ptr
+
strlen(s1),
strlen(ptr)
-
strlen(s1)
+
1);
memcpy(ptr,
&s2[0],
strlen(s2));
}
return
s;
}
int
main()
{
char
*str1="abc",
*str2="a",
*str3="de",
Str0[100];
//如果字符串很长,100不够则需要预留更大的空间。
strcpy(Str0,Str1);
strrpl(Str0,
str2,
str3);
printf("%s\n",
Str0);
return
0;
}

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

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

⑹ C语言中如何用一个字符串替换一个主串中的子串

参考以下代码
#include <string.h>
//oldstr原字符串, newstr新字符串, oldsubstr原字符串中要替换的子串, newsubstr新字符串中替换后的新子串
void replace(char *oldstr, char *newstr, char *oldsubstr, char *newsubstr)
{
int i, j;
int nLen = strlen(oldstr);
int nLenSub = strlen(oldsubstr);
for(i=0, j=0; i<nLen;)
{
if(0 == strncmp(oldstr+i, oldsubstr, nLenSub))
{
strcat(newstr+j, newsubstr);
j += strlen(newsubstr);
i += nLenSub;
}
else
{
newstr[j++] = oldstr[i++];
}
}
}

⑺ c语言编程替换文件中字符串

方法和详细的操作步骤如下:

1、第一步,依次单击visual C ++ 6.0的“文件”-->“新建”-->“文件”-->“C++ Source File”选项,见下图,转到下面的步骤。

⑻ C语言初学,字符替换

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

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

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

strchange(str,c1,c2);

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

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

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

#include<stdio.h>
char*strchange(char*str,charc1,charc2);
main(){
charc1,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,charc1,charc2){
while(*str){
if(*str==c1){
*str=c2;
}
str++;
}
returnstr;
}

⑼ C语言写一个替换字符串的程序

#include<stdio.h>
#include<malloc.h>
#include<memory.h>
#include<string.h>
char*replace(char*str,constchar*before,constchar*after)
{
if(strcmp(before,after)==0)
returnstr;
char*ps=str;
char*tmps;
intfl;
while(ps=strstr(ps,before))
{
tmps=(char*)malloc(ps-str+strlen(after)+1);
memcpy(tmps,str,ps-str);
*(tmps+(ps-str))=0;
strcat(tmps,after);
ps+=strlen(before);
tmps=(char*)realloc(tmps,strlen(tmps)+strlen(ps)+1);
fl=strlen(tmps);
strcat(tmps,ps);
strcpy(str,tmps);
ps=str+fl;
free(tmps);
}
returnstr;
}
intmain()
{
charstr[200]="1223344222333444";
printf("%s ",replace(str,"22","ABC"));
return0;
}

哦,不能用strstr和memcpy啊,改了下:

#include<stdio.h>
#include<malloc.h>
#include<string.h>
char*fstr(char*str,constchar*subs)
{
char*t=(char*)malloc(strlen(subs)+1);
char*ps=str;
inti;
intslen=strlen(subs);
*(t+slen)=0;
while(strlen(ps)>=slen)
{
for(i=0;i<slen;++i)
{
*(t+i)=*(ps+i);
}
if(strcmp(t,subs)==0)
{
free(t);
returnps;
}
++ps;
}
free(t);
returnNULL;
}
char*replace(char*str,constchar*before,constchar*after)
{
if(strcmp(before,after)==0)
returnstr;
char*ps=str;
char*tmps;
intfl,i;
while(ps=fstr(ps,before))
{
tmps=(char*)malloc(ps-str+strlen(after)+1);
for(i=0;i<ps-str;++i)
*(tmps+i)=*(str+i);
*(tmps+(ps-str))=0;
strcat(tmps,after);
ps+=strlen(before);
tmps=(char*)realloc(tmps,strlen(tmps)+strlen(ps)+1);
fl=strlen(tmps);
strcat(tmps,ps);
strcpy(str,tmps);
ps=str+fl;
free(tmps);
}
returnstr;
}
intmain()
{
charstr[200]="1223344222333444";
printf("%s ",replace(str,"22","ABC"));
return0;
}

热点内容
宝宝商业保险怎么配置 发布:2025-01-04 14:53:20 浏览:781
途锐拓野版有什么配置 发布:2025-01-04 14:32:07 浏览:173
micropython编译器 发布:2025-01-04 14:31:14 浏览:467
mfcopengl怎么配置 发布:2025-01-04 14:29:16 浏览:601
为什么编译器编译不到文件 发布:2025-01-04 14:24:03 浏览:393
oracle存储过程获取字符串长度 发布:2025-01-04 14:24:02 浏览:210
php防止重复提交表单 发布:2025-01-04 14:15:38 浏览:504
我的世界拔刀服务器合什么拔刀好 发布:2025-01-04 14:06:55 浏览:779
如何远程接入华三服务器 发布:2025-01-04 14:06:10 浏览:816
我的世界伟大航路服务器邮箱 发布:2025-01-04 13:40:52 浏览:902