1. c语言 字符替换
考,ACM题?
偶试试看先,等等发上来……
----------------------------------
完工:
#include <stdio.h>
#include <stdlib.h>
void main()
{
int count = 0, i = 0;
char str[31], ori, rpl, *p;
scanf( "%d", &count );
if( count<1 )
exit( -1 );
else {
for( ; i<count; i++ )
{
scanf( "%s %c %c", str, &ori, &rpl );
p = str;
while( *p!='\0' )
{
if( *p==ori ) *p=rpl;
*p++;
}
printf( "%s\n", str );
}
}
}
2. 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;
}
运行截图:
3. c语言编程替换文件中字符串
方法和详细的操作步骤如下:
1、第一步,依次单击visual C ++ 6.0的“文件”-->“新建”-->“文件”-->“C++ Source File”选项,见下图,转到下面的步骤。
4. 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;
}
5. 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;
}
6. 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;
}
7. c语言如何将一个字符串里某些字符代替另外一个字符串来
用char *strstr(const char *str, const char *strSearch ); 函数找到源字符串中,你要替换的字符串。该函数返回要替换的字符串的指针。然后将替换的字符串赋值给该指针的位置。
8. 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=='