当前位置:首页 » 编程语言 » c语言替换编程
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言替换编程

发布时间: 2023-05-12 07:49:31

1. c语言程序设计 单词替换

//查找并替换指定文件所包含的字符串,保存于另一个文件中

#include "stdio.h"
#include "iostream.h"
#include "string.h"

void main()
{
FILE *fp1,*fp2;
char path[128],path_new[128],search[128],replace[128];

cout<<"input the file path and name."<<endl;//输入原文件的路径和文件名
gets(path);
//puts(path);
cout<<"input the new file path and name."<<endl;//输入新文件的路径和文件名
gets(path_new);
cout<<"input the words you want to search."<<endl;//输入所查找的字符串
gets(search);
cout<<"input the words you want to replace."<<endl;//输入要替换的字符串
gets(replace);

int len;//所查找的字符串的长度
len=strlen(search);
//cout<<len<<endl;
int len_replace;//要替换的字符串的长度
len_replace=strlen(replace);

if((fp1=fopen(path,"r+"))==NULL)//打开原文件
{
cout<<"Can not open this file."<<endl;
//exit();
}

if((fp2=fopen(path_new,"w+"))==NULL)//创建新文件
{
cout<<"Can not open this file."<<endl;
//exit();
}

while(feof(fp1)==0)
{
char ch=fgetc(fp1);
long num=1;//匹配字符计数器

if(ch==search[0])//发现与查找的字符串匹配的第一个字符
{
int err=0;
for(int i=1;i<len;i++)//确定字符串是否完吵凳全匹配
{
ch=fgetc(fp1);
num++;
if(ch!=search[i])
{
err=1;
break;
}
}

if(err==0) //完全匹配
{
for(i=0;i<len_replace;i++)//插入要替换的字符串
fputc(replace[i],fp2);
}

else//未完全匹配,返回指针至与查找的字符串匹配的第一个字符
{
fseek(fp1,-num,1);
ch=fgetc(fp1);
fputc(ch,fp2);
}

}

else fputc(ch,fp2);//复制其他字符串烂碰桐

}

fclose(fp1);/饥坦/关闭原文件
fclose(fp2);//关闭新文件

}

-------------------
C++的程序可以吗?已经通过调试,希望对你有帮助。

2. c语言编程:字符串替换与移位

帮你写好了
#include<stdio.h>
#include<string.h>
#define size 100
void main()
{
char a[size],temp;
int i, len;
printf("输入字符串:\n");
gets(a);
printf("原来的字符串为:\n");
puts(a);
len = strlen(a);
for(i=0; i<len; i++)
{
if(a[i]=='a')
{
a[i]='e';
}
else if(a[i]=='e')
{
a[i]='a';
}
else if(a[i]=='d')
{
a[i]='t';
}
else if(a[i]=='t')
{
a[i]='d';
}
}
printf("转换后的字符串为:\n");
puts(a);

temp = a[len-1];
for(i=1; i<len; i++)
{
a[len-i] = a[len-i-1];
}
a[0] = temp;

printf("循环右移1位后字符串为:\n");
puts(a);

}

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

#include
int
main()
{
file
*fp;
file
*fp2;
fp
=
fopen("test.txt","r");
char
in[100];
char
check[100];
char
out[100];
char
c;
int
count=0;
printf("input
a
string
to
search:
\n");
scanf("%s",in);
/*in本身就是地址,&in指的是同一个地址,但本质上有区别,后者指的整个数组空间*/
while((c=fgetc(fp))
!=
eof)
{
/*问题在这里,你先是fgetc了,也就是说读了州迹一个字符了,想一想你每次都是在while里读一个字符串,再在()里做判断,字符串后面不就是紧跟着换行吗?*/
fscanf(fp,"%s",check);//同上
if(strcmp(in,check)==0)
count++;
memset(check,0x00,sizeof(check));
}
printf("count:
%d\n",count+1);
printf("input
a
word
to
replace:\n");
scanf("%s",&out);//你懂的
fclose(fp);//记得文件使用轮纤完一定要关闭
fp
=
fopen("test.txt","r");
fp2
=
fopen("test-new.txt","w");
while((c=fgetc(fp))
!=
eof)
{
fscanf(fp,"%s",&check);//
if(strcmp(in,
check)==0)
{
fprintf(fp2,
"%s",
out);
}
else
fprintf(fp2,
"%s",check);
memset(check,0x00,sizeof(check));
}
system("pause");
//关闭文腊迹仿件!
}

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

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

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

5. c语言 怎么对位进行替换

就是交换两个变量是吧。另设一个中间变量即可实现。
sbit CY=PSW^7;
sbit K= P1^0;
sbit temp;
temp=CY;
CY=K;
K=temp;
这个思想您应该能明白吧。呵呵。

实现循环左移是吧,就是最高位移到最低位,然后顺次左移。
左移指令是把最高位移到C(进位/借位标志)里面,所以需要把这个标志放到敏简最低位,也就是说使最低位和进位标志一样。
设最高位为A,最低位散拿此为B,可得最低位应该为 A非*B+A*B
因此不能用一个独立的逻辑运算(与、或、非、异或)实现,按照上面给出冲迅的公式即可运算,注意最高位A是在C进位标志中的。

呵呵,这个明白了吗?

6. c语言编程-字符串替换问题

if((fp=fopen("IN.DAT","r"))==NULL)
用"r"枣棚方式自能笑局打开一个已经存在文件, 估计"IN.DAT"在你的工作目录下不存在...
for(j=0;j<str-1;j++)这个for循环也没有大碰岩让括号标记包含那几个语句, 放在后面可以, 因为ch=xx[i][0]的第二维index一直是0,只是这样会多做一些不必要的工作,降低程序效率...

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

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

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

8. c语言编程:查找并替换此英文文本文件中某字符串

//************************************
//Method:strrpl
//FullName:strrpl
//Access:public
//Returns:void
//Qualifier:字符串替换函数,能替换所有的要替换的字符串,被替换的字符串和替换的字符串不一定一样长.
//Parameter:char*pDstOut,输出字符串,要保证足够的空间可以存储替换后的字符串.
//Parameter:char*pSrcIn,输入字符串.
//Parameter:char*pSrcRpl,被替换的字符串.
//Parameter:char*pDstRpl,替换后的字符串.
//注意:以上的字符串均要以''结尾.
//************************************

voidstrrpl(char*pDstOut,char*pSrcIn,constchar*pSrcRpl,constchar*pDstRpl)
{
char*pi=pSrcIn;
char*po=pDstOut;

intnSrcRplLen=strlen(pSrcRpl);
intnDstRplLen=strlen(pDstRpl);

char*p=NULL;
intnLen=0;

do
{
//找到下一个替换点
p=strstr(pi,pSrcRpl);

if(p!=NULL)
{
//拷贝上一个替换点和下一个替换点中间的字符串
nLen=p-pi;
memcpy(po,pi,nLen);

//拷贝需要替换的字符串
memcpy(po+nLen,pDstRpl,nDstRplLen);
}
else
{
strcpy(po,pi);

//如果没有需要拷贝的字符串,说明循环应该结束
break;
}

pi=p+nSrcRplLen;
po=po+nLen+nDstRplLen;

}while(p!=NULL);
}

9. 在c语言编程中如何实现程序对文本文件中字符串进行替换及生成新的文本文件

我以前刚学C++的时候写过一个相似的程序,如果你要的是纯C语言下的编程,那么你就参考一下,这个算法的原理是一样的,即读入一个字符就显示出来。当然你也可以考虑其他实现方式。这个C++的程序中,和C语言区别的主要是有些输入和输出不太一样。还有system("pause")这个是调用系统暂停功能,可能在TC等编译环境下不能使用,可以考虑使用getch()替换。至于system("cls")是清屏。
相关功能函数为Display_text(),

#include<iostream>
#include<fstream>
#include <iomanip>
#include<windows.h>
using namespace std;

#define MaxSize 65535
int tag[100]; //匹配关键字的字符下标,设定最多找到100个关键字

typedef struct
{
char data[MaxSize]; //记录字符值
int len; //保存有效字符串长度
}SqString;

void MainMenu(); //显示主菜单
void Select_function(char op); //功能选择
void Display_text(); //显示本文内容
void Count_ch(); //统计字符数,空格数,行数
void Search_KeyWord(); //检索关键字
void Replace_KeyWord(); //替换关键字
void index(SqString s,SqString t); //简单匹配算法(BF)
void SetColor(unsigned short ForeColor,unsigned short BackGroundColor); //颜色函数

int main()
{
MainMenu();
return 0;
}

void MainMenu() //显示主菜单
{
char op;
cout<<"I——打开文本文件\n";
cout<<"T——统计\n";
cout<<"S——检索\n";
cout<<"R——替换\n";
cout<<"Q——退出\n\n";
cout<<"请选择:";
cin>>op;
Select_function(op);
}

void Select_function(char op) //功能选择
{
switch(op)
{
case 'i':
case 'I':Display_text();break;
case 't':
case 'T':Count_ch();break;
case 's':
case 'S':Search_KeyWord();break;
case 'r':
case 'R':Replace_KeyWord();break;
case 'q':
case 'Q':exit(0);
default:cout<<"输入错误,请重新选择"<<endl;
system("pause");system("cls");
MainMenu();
break;
}
}

void Display_text() //显示本文内容
{
int i=0;
char c,ch[150];
cout<<"请输入文件名:"<<endl;
cin>>ch;
system("cls");
ifstream infile;
infile.open(ch,ios::in);
if(!infile)
{
cerr<<"Open file error!"<<endl;
system("pause");system("cls");
MainMenu();
}
while(infile.get(c))
{
cout<<c;
i++;
if(i>=1000&&c=='\n'||i>=1500)
{
cout<<endl<<endl;
system("pause");system("cls");
i=0;
}
}
infile.close();
SetColor(11,8);
cout<<endl<<"文本内容结束!"<<endl;
SetColor(7,0);
system("pause");system("cls");
MainMenu();
}

void Count_ch() //统计字符数,空格数,段落数
{
int i=0,j=0,k=0;
char c,ch[150];
cout<<"请输入文件名:"<<endl;
cin>>ch;
system("cls");
ifstream infile;
infile.open(ch,ios::in);
if(!infile)
{
cerr<<"Open file error!"<<endl;
system("pause");system("cls");
MainMenu();
}
while(infile.get(c))
{
i++;
if(c==' ')j++;
if(c=='\n')k++;
}
infile.close();
SetColor(11,8);
cout<<"字符数:"<<i<<endl;
cout<<"空字符数"<<j<<endl;
cout<<"段落数(回车次数)"<<k<<endl;
SetColor(7,0);
system("pause");system("cls");
MainMenu();
}

void Search_KeyWord() //检索关键字
{
int i=0,j=0,k=0;
char c,ch[150],kw[50];
SqString s,t;
cout<<"请输入文件名:"<<endl;
cin>>ch;
system("cls");
ifstream infile;
infile.open(ch,ios::in);
if(!infile)
{
cerr<<"Open file error!"<<endl;
system("pause");system("cls");
MainMenu();
}
cout<<"请输入关键字:";
cin>>kw;
cout<<endl;
while(infile.get(c)&&i<MaxSize)
{
s.data[i]=c;i++;
}
s.len=i;
infile.close();
for(i=0;kw[i]!='\0';i++)
t.data[i]=kw[i];
t.len=i;
index(s,t);
if(tag[0]==-1)cout<<"无此关键字"<<endl;
else
{
for(i=0;i<=s.len;i++)
{
if(i==tag[j])
{
for(;i<tag[j]+t.len;i++)
{
SetColor(10,8);
cout<<s.data[i];
SetColor(7,0);
}
j++;
}
else cout<<s.data[i];
k++;
if(k>=1500&&s.data[i]=='\n'||k>=2000)
{
cout<<endl<<endl;
system("pause");system("cls");
k=0;
}
}
SetColor(11,8);
cout<<endl<<endl<<"文本内容结束!"<<endl;
SetColor(7,0);
}
system("pause");system("cls");
MainMenu();
}

void Replace_KeyWord() //替换关键字
{
int i=0,j=0,k=0;
char c,ch[150],kw[50],nkw[50];
SqString s,t,nt;
cout<<"请输入文件名:"<<endl;
cin>>ch;
system("cls");
ifstream infile;
infile.open(ch,ios::in);
if(!infile)
{
cerr<<"Open file error!"<<endl;
system("pause");system("cls");
MainMenu();
}
cout<<"请输入关键字:";
cin>>kw;
cout<<endl;
while(infile.get(c)&&i<MaxSize)
{
s.data[i]=c;i++;
}
s.len=i;
infile.close();
for(i=0;kw[i]!='\0';i++)
t.data[i]=kw[i];
t.len=i;
index(s,t);
if(tag[0]==-1)cout<<"无此关键字"<<endl;
else
{
cout<<"请输入新的字符替代原关键字:"<<endl;
cin>>nkw;
for(i=0;nkw[i]!='\0';i++)
nt.data[i]=nkw[i];
nt.len=i;

for(i=0;i<=s.len;i++)
{
if(i==tag[j])
{
for(int n=0;i<tag[j]+nt.len;i++,n++)
{
s.data[i]=nt.data[n];
SetColor(10,8);
cout<<s.data[i];
SetColor(7,0);
}
j++;
}
else cout<<s.data[i];
k++;
if(k>=1500&&s.data[i]=='\n'||k>=2000)
{
cout<<endl<<endl;
system("pause");system("cls");
k=0;
}
}

SetColor(11,8);
cout<<endl<<endl<<"文本内容结束!"<<endl;
SetColor(7,0);
}
fstream outfile(ch,ios::out);
if(!outfile)
{
cerr<<"Open file error!"<<endl;
system("pause");system("cls");
MainMenu();
}
for(i=0;i<=s.len;i++)
{
outfile<<s.data[i];
}
outfile.close();
system("pause");system("cls");
MainMenu();
}

void SetColor(unsigned short ForeColor,unsigned short BackGroundColor) //颜色函数
{
HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hCon,(ForeColor%16)|(BackGroundColor%16*16));
}

void index(SqString s,SqString t) //简单匹配算法(BF)
{
int i=0,j=0,k=0;
h0: while(i<s.len&&j<t.len)
{
if(s.data[i]==t.data[j])
{
i++;j++;
}
else
{
i=i-j+1;j=0;
}

}
while(j>=t.len)
{
tag[k]=i-t.len;
k++;
i++;j=0;
goto h0;
}
if(k==0)tag[0]=-1;
}

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

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

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