首先要說(shuō)明的是這里并不是指刪除C編譯器里面的文件,呵呵,如果只是要?jiǎng)h除那些文件的話,那就很簡(jiǎn)單,直接選中文件后按delete鍵就可以刪除了,但是我們刪除那些文件干嘛?我們還要用它寫程序啊,呵呵。我在這里要說(shuō)的是,怎樣使用C語(yǔ)言編寫程序來(lái)刪除文件。
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)北京免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
在C語(yǔ)言中,我們可以使用remove()函數(shù)來(lái)刪除指定的文件,具體語(yǔ)法為:
Int remove(char *filename);其中filename是一個(gè)指向字符串的指針,該字符串可以組成有效的文件名,也可以包含路徑說(shuō)明。如果我們要?jiǎng)h除D盤下的ABC.txt文件,我們就可以這樣寫:remove(“D:\ABC.txt”);
char *removeStr(char *str1,char *str2) //str1 操作目標(biāo)
{
int i = 0;
int j = 0;
for ( i = 0; i strlen(str1); ++i )
{
j = 0;
for (; j strlen; ++j )
{
/* 如果找到了一樣的字符*/
if ( *(str1 + i) == *( str2 + j) )
{
*(str + i ) = '0'; //把它填為0
}
else
{
//do nothing
}
} //for end
} //for end
/* 不用的空位已經(jīng)為0 在主函數(shù)中只要輸出的時(shí)候把0 去除就可以了*/
}
返回-1的時(shí)候檢查errno這個(gè)全局變量,看錯(cuò)誤碼,對(duì)應(yīng)就能知道什么原因了,要么路徑不對(duì),要么權(quán)限不對(duì)
常見的有兩個(gè)
1是你建立的文件仍然在使用中,也就是說(shuō)你沒(méi)有關(guān)閉它,比如沒(méi)用fclose
2是你的filename中的路徑不對(duì),"C:\a.txt"要寫為"C:\\a.txt"
樓主的意思是在str1中刪除str2中出現(xiàn)的字符?那么改成:
#includestdio.h
void main ()
{
char str1[9]={'t','i','n','m','f','g','y','f','s'};
char str2[3]={'A','s','g'};
int i,k,l;
for(i=0;i9;i++)
{
l=0;
for(k=0;k3;k++)
{
if (str1[i]=str2[k])
{l=1;break;}
}
if l!=1
printf("%c",str1[i]);
}
}