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,替換後的字元串.
//注意:以上的字元串均要以'