C语言编写字符替换程序。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言编写字符替换程序。相关的知识,希望对你有一定的参考价值。

编写程序将一个指定文件中某一字符串替换为另一个字符串。要求:(1)被替换字符串若有多个,均要被替换;(2)指定的被替换字符串,大小写无关。
【输入形式】
给定文件名为filein.txt。从控制台输入两行字符串(不含空格,行末尾都有回车换行符),分别表示被替换的字符串和替换字符串。
【输出形式】
将替换后的结果输出到文件fileout.txt中。
提交过关即采纳答案。速度。

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

int equal(char c1,char c2)

if(c1==c2) return 1;
if(c1>='A' && c1<='Z' && c2>='a' && c2<='z' && c2-c1==32) return 1;
if(c2>='A' && c2<='Z' && c1>='a' && c1<='z' && c1-c2==32) return 1;
return 0;


char *findstr(char *str1,char *str2)

int i,j;
int len1,len2;
len1=strlen(str1);
len2=strlen(str2);
for(i=0;i<=len1-len2;i++)

for(j=0;j<len2;j++)

if(!equal(str1[i+j],str2[j]))
break;

if(j==len2) return str1+i;

return NULL;


void main()

FILE *fp1,*fp2;
char str[81];
char src[81],dest[81];
int lens,lend;

if((fp1=fopen("filein.txt","r"))==NULL)

printf("open filein.txt error!\n");
exit(1);

if((fp2=fopen("fileout.txt","w"))==NULL)

printf("create fileout.txt error!\n");
exit(1);


scanf("%s",src);
scanf("%s",dest);
lens=strlen(src);
lend=strlen(dest);

fgets(str,80,fp1);
while(!feof(fp1))

char *pos,temp[81];
while(pos=findstr(str,src))

strcpy(temp,pos+lens);
strcpy(pos,dest);
strcat(str,temp);

fputs(str,fp2);
fgets(str,80,fp1);

fclose(fp1);
fclose(fp2);
参考技术A #include<iostream>
#include<fstream>
using namespace std;
ifstream fin("filein.txt");
ofstream fout("fileout.txt");
char s[1000],init[1000],aftit[1000]; //一千个字符以内哦!
int maxer,miner;
void serch()
bool ccc=true;
for(int i=1;i<=s[0];++i)
for(int j=0;j<=maxer;++j)
if(init[i+j]!=s[i+j])
ccc=false;


if(ccc)
for(int zzz=i;zzz<=maxer;++zzz)
init[zzz]='@';

for(int zzz=i;zzz<=miner;++zzz)
init[zzz]=aftit[zzz];

for(int zzz=i;zzz<=maxer;++zzz)
if(init[zzz]='@')
memmove(&init[zzz],&init[zzz+1],sizeof(int)*(maxer-zzz));




return;

int main()
string ss;
int len,i;
fin>>ss;
len=ss.length();
for(i=1;i<=len;++i)

s[i]=ss[i];

s[0]=len;
string abc;
cin>>abc;
int len2,len3;
len2=abc.length(); for(i=1;i<=len2;++i) init[i]=abc[i];
string cba; cin>>cba;len3=cba.length();for(i=1;i<=len3;++i) aftit[i]=cba[i];
if(len2>len3) maxer=len2;miner=len3;elsemaxer=len3;miner=len2;
for(i=1;i<=maxer;++i)
serch();

return 0;


可能有一些小bug,但是总体思想是对的。
参考技术B 同学,我是熊璋,你太让我失望了。

C语言问题 编写一程序将两个字符串连起来

1 用strcat函数
2 不用strcat函数

#include <stdio.h>
#include <string.h>
int main ()

    char str1[10],str2[5],*p,i;//这里用str1接收拼接后的字符串,确保str1大小够放!! 注意要留1位保存结束符'\\0'
    strcpy(str1,"abcd");strcpy(str2,"efgh");
    printf("原字符串分别为:%s   %s\\n\\n",str1,str2);

    strcat(str1,str2);
    printf("用strcat拼接后字符串:%s\\n\\n",str1);

    strcpy(str1,"abcd");strcpy(str2,"efgh");
    p=&str1[strlen(str1)];
    for(i=0;i<strlen(str2);i++)
        *p++=str2[i];
    *p=0;
    printf("不用strcat拼接后字符串:%s",str1);
    return 0;

参考技术A

一、用strcat函数:

#include "stdio.h"
#include "string.h"
int main(int argc,char *argv[])
char a[100]="abcdefg",b[]="1234567";
printf("%s\\n",strcat(a,b));
return 0;

二、不用strcat函数:

#include "stdio.h"
int main(int argc,char *argv[])
char a[100]="abcdefg",b[]="1234567",*pa=a,*pb=b;
while(*pa)
pa++;
while(*pa++=*pb++);
printf("%s\\n",a);
return 0;

反复看都是今天的提问,提交了变成 2015-12-04的提问了,且已经采纳别人了——百度知道最近怎么了?这么忽悠人!

参考技术B #include<stdio.h>
#include<string.h>
int main(void)
    char *ch1;
    char *ch2;
    printf("请输入第一个字符串:");
    scanf("%s",ch1);
    printf("请输入第二个字符串:");
    scanf("%s",ch2);
    strcat(ch1,ch2);
    printf("%s",ch1);
    return 0;

本回答被提问者和网友采纳
参考技术C #include<stdio.h>
void f(char *a, char *b)


while(*a++);
a--;
while(*a++=*b++);


void main()

char a[100], b[100];
gets(a);
gets(b);
f(a, b);
puts(a);

参考技术D 你的描述不够详细,我写了个给你参考

1 用strcat函数
#include <string>
#include <iostream>
using namespace std;
int main(void)
char s1[20]="abcd";
char s2[]="def";
strcat(s1,s2);
cout<<s1<<endl;
return 1;

2 不用strcat函数
#include <string>
#include <iostream>
using namespace std;
int main(void)
char s1[20]="abcd";
char s2[]="def";
char *p;
p=&s1[strlen(s1)];
strcpy(p,s2);
cout<<s1<<endl;
return 1;

以上是关于C语言编写字符替换程序。的主要内容,如果未能解决你的问题,请参考以下文章

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

C语言问题 字符(串)替换

编写一个实现字符串替换的程序,

用C语言编写一个在字符串中插入一个字符的程序

c语言如何替换字符串中的“&”符号?

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