本文目錄一覽:
C語言:如何根據需要刪除文件中特定的行
C語言文件操作有覆蓋和追加兩種模式,但不提供插入模式。所以要在文件中指定行進行刪除或者插入,需要按照如下流程操作: 1、以只讀打開文件; 2、將文件逐行讀入到內存中; 3、關閉文件; 4、在內存中對指定行插入或者刪除; 5、以只寫打開文件; 6、將修改後的數據寫入文件; 7、關閉文件。參考代碼:假定文件最多100行,執行刪除第5行,並在原第8,9行中間插入一行數據為例,代碼如下: #include #include char buf[100][1000];int main(){ FILE *fp; char *s=”abcdef\n”;//要插入的數據 int i=0; int n=0; fp = fopen(“my.txt”, “r”);//讀方式打開文件 while(fgets(buf[n], 1000, fp) != EOF)//循環讀取所有數據 n++; fclose(fp);//關閉文件。 for(i = 4; i7; i ++)//刪除第五行 strcpy(buf[i],buf[i+1]); strcpy(buf[7], s);//插入到第8行。 fp=fopen(“my.txt”, “w”);//寫方式打開文件。 for(i = 0; i n; i ++)//寫入所有處理後的數據。 fputs(buf[i], 1000, fp); fclose(fp);//關閉文件。 return 0; }
如何用C語言刪除,創建文件
#includeio.h
#includestdio.h
int main(){
FILE *p;
if(_access(“code.csv”,F_OK)==0)remove(“code.csv”);//如果存在就刪除
p=fopen(“code.csv”,”w”);//創建
fclose(p);
return 0;
}
c語言修改、刪除文件中的字符串
字符串其實是一個數組。你把後面的abcd依次移到****位置上。然後讓字符串結束就好了。
符串或串(string)是由零個或多個字符組成的有限序列。一般記為
s=’a1a2???an'(n=0)。它是編程語言中表示文本的數據類型。
通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字符串相等的充要條件是:長度相等,並且各個對應位置上的字符都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。
[編輯本段]字符串函數
1.
連接運算
concat(s1,s2,s3…sn)
相當於s1+s2+s3+…+sn.
例:concat(‘11’,’aa’)=’11aa’;
2.
求子串。
copy(s,i,l)
從字符串s中截取第i個字符開始後的長度為l的子串。
例:copy(‘abdag’,2,3)=’bda’
3.
刪除子串。過程
delete(s,i,l)
從字符串s中刪除第i個字符開始後的長度為l的子串。
例:s:=’abcde’;delete(s,2,3);結果s:=’ae’
4.
插入子串。
過程insert(s1,s2,i)
把s1插入到s2的第i個位置
例:s:=abc;insert(‘12’,s,2);結果s:=’a12bc’
5.
求字符串長度
length(s)
例:length(‘12abc’)=5
在asp中
求字符串長度用
len(s)例:
len(“abc12”)=5
6.
搜索子串的位置
pos(s1,s2)
如果s1是s2的子串
,則返回s1的第一個字符在s2中的位置,若不是子串,則返回0.
例:pos(‘ab’,’12abcd’)=3
7.
字符的大寫轉換。upcase(ch)
求字符ch的大寫體。
例:upcase(‘a’)=’a’
8.
數值轉換為數串。
過程
str(x,s)
把數值x化為數串s.
例:str(12345,s);
結果s=’12345’
9.
數串轉換為數值。
過程val(s,x,i)
把數串s轉化為數值x,如果成功則i=0,不成功則i為無效字符的序數
例:val(‘1234’,x,i);結果
x:=1234
如何用c語言文件操作來實現刪除文件某段內容功能?
C語言刪除磁盤文件內容中間一段字符串的方法
假定磁盤文件中連續存放了相同長度的若干段字符串,要刪除中間的某一段字符串,剩下的繼續保存在文件中。
代碼如下,有比較清楚的注釋。
//變量定義部分省略
file=fopen(pathname,”rb”);//打開磁盤文件,file是文件指針,pathname是磁盤文件的路徑和文件名
filedata[0] = (char *)malloc(LENGTH*sizeof(char));//filedata是指針數組用於存放刪除後的臨時數據,LENGTH是每個字符串的相同長度
//找出要刪除的字符串,並將其它的字符串存入臨時指針數組
for(found=0,y=0;fread(filedata[y],LENGTH,1,file); )//found用於判斷是否找到要刪除的字符串
{
*(filedata[y]+LENGTH)=’\0′;
if(found==0)//沒有找到前才進行比較
{
if( strcmp(deldata,filedata[y])==0 )//deldata是要刪除的字符串
{
found=1;
//找到要刪除的字符串,從臨時存放的指針數組中刪除
free(filedata[y]);
y–;
}
}
y++;
filedata[y] = (char *)malloc((LENGTH+1)*sizeof(char));
}
free(filedata[y]);//y多加了1,多申請了一段內存空間
fclose(file);
if(found==0)
{
printf(“沒有找到要刪除的字符串。\n”);
}
else//將已刪除指定字符串後剩餘的所有數據從臨時存放的指針數組中重新保存到磁盤文件
{
file=fopen(pathname,”wb”);
for(m=0;m
{
fwrite(filedata[m],LENGTH,1,file);
free(filedata[m]);//釋放內存
}
fclose(file);
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/257228.html