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,替换后的字符串.
//注意:以上的字符串均要以'