GetDiskFreeSpaceEx是windows的API啊,調(diào)用之后就會(huì)獲得信息。
成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)容縣,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
說明
獲取與一個(gè)磁盤的組織以及剩余空間容量有關(guān)的信息
返回值
Long,非零表示成功,零表示失敗。會(huì)設(shè)置GetLastError
參數(shù)表
參數(shù) 類型及說明
lpRootPathName String,不包括卷名的磁盤根路徑名
lpFreeBytesAvailableToCaller LARGE_INTEGER,指定一個(gè)變量,用于容納調(diào)用者可用的字節(jié)數(shù)量
lpTotalNumberOfBytes LARGE_INTEGER,指定一個(gè)變量,用于容納磁盤上的總字節(jié)數(shù)
lpTotalNumberOfFreeBytes LARGE_INTEGER,指定一個(gè)變量,用于容納磁盤上可用的字節(jié)數(shù)
適用平臺(tái)
Windows 95 OSR2,Windows NT 4.0
char *delspace(char *str) //定義一個(gè)函數(shù),該函數(shù)返回一個(gè)字符串指針,括號(hào)里面是參數(shù)和參數(shù)的類型,也是一個(gè)字符串指針
{
char *p=str; //申明一個(gè)指針讓他指向參數(shù)字符串的首地址
while(*p) //while循環(huán),一直執(zhí)行{}之內(nèi)的操作,知道*p指向字
符串末尾
{ if(*p=='')
strcpy(p,p+1); //如果原來的字符串(參數(shù))中有空格,
*p指向它的時(shí)候,就把它去掉,
strcpy(p,p+1); 就是用p+1復(fù)制到p的位置
else
p++;
}
return str; //返回修改之后的字符串指針
}
要解決的問題主要是怎么判斷字符串的結(jié)尾(空格的ASCII碼直接用' '就可以了)
一般情況是使用‘\0’判斷字符串結(jié)尾,但是這樣的程序會(huì)有漏洞,就是對(duì)少數(shù)沒有‘\0'的字符串 可能 會(huì)出錯(cuò)。為什么說可能呢?首先編譯的時(shí)候肯定沒問題,但是在內(nèi)存一個(gè)一個(gè)比對(duì)字符時(shí),因?yàn)樽址袥]有’\0'所以到字符串結(jié)束時(shí),比對(duì)還沒結(jié)束,他會(huì)繼續(xù)將相鄰物理內(nèi)存中的數(shù)據(jù)取出對(duì)比,直到遇到‘\0'為止;所以建議把函數(shù)改成int CountSpace(char *pStr,int n);n用為字符數(shù)組長(zhǎng)度;
下面是我寫的一個(gè)程序,我運(yùn)行過了,可以的
#includestdio.h
#define LEN 20 //字符數(shù)組的長(zhǎng)度
/*
**定義一個(gè)函數(shù)用于計(jì)算字符串空格
*/
int CountSpace(char *pstr, int n)
{
char *p_str;
int sum = 0;
int i = 0;
//遇到字符串中‘\0’或者是字符數(shù)組的結(jié)尾時(shí)退出循環(huán),空格的ASCII是' '
for( p_str = pstr; *p_str != '\0' i n; p_str ++, i ++ )
if( *p_str == ' ' ) sum += 1;
printf( "%d\n", i );
return sum;
}
/*
**用函數(shù)CountSpace()求出字符串中空格的個(gè)數(shù)
*/
void
main( void )
{
char str[LEN] = "I am a good boy";
int getch();
int i;
i = CountSpace( str, LEN );//用數(shù)組名做實(shí)參
printf( "%d", i );
getch();
}
在函數(shù)中有個(gè)printf( "%d\n", i ); 那個(gè)是用來判斷循環(huán)次數(shù)的,不要也可以。你要是只用一個(gè)形參,且有'\0'判斷結(jié)尾,你會(huì)發(fā)現(xiàn)你的循環(huán)次數(shù)超出字符數(shù)組的長(zhǎng)度!雖然結(jié)果可能相同。。
我也是剛學(xué)C語言,(一個(gè)月)有機(jī)會(huì)多交流一下