大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
GetDiskFreeSpaceEx是windows的API啊,调用之后就会获得信息。
成都创新互联公司主要从事成都网站制作、做网站、外贸营销网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务容县,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
说明
获取与一个磁盘的组织以及剩余空间容量有关的信息
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpRootPathName String,不包括卷名的磁盘根路径名
lpFreeBytesAvailableToCaller LARGE_INTEGER,指定一个变量,用于容纳调用者可用的字节数量
lpTotalNumberOfBytes LARGE_INTEGER,指定一个变量,用于容纳磁盘上的总字节数
lpTotalNumberOfFreeBytes LARGE_INTEGER,指定一个变量,用于容纳磁盘上可用的字节数
适用平台
Windows 95 OSR2,Windows NT 4.0
char *delspace(char *str) //定义一个函数,该函数返回一个字符串指针,括号里面是参数和参数的类型,也是一个字符串指针
{
char *p=str; //申明一个指针让他指向参数字符串的首地址
while(*p) //while循环,一直执行{}之内的操作,知道*p指向字
符串末尾
{ if(*p=='')
strcpy(p,p+1); //如果原来的字符串(参数)中有空格,
*p指向它的时候,就把它去掉,
strcpy(p,p+1); 就是用p+1复制到p的位置
else
p++;
}
return str; //返回修改之后的字符串指针
}
要解决的问题主要是怎么判断字符串的结尾(空格的ASCII码直接用' '就可以了)
一般情况是使用‘\0’判断字符串结尾,但是这样的程序会有漏洞,就是对少数没有‘\0'的字符串 可能 会出错。为什么说可能呢?首先编译的时候肯定没问题,但是在内存一个一个比对字符时,因为字符串中没有’\0'所以到字符串结束时,比对还没结束,他会继续将相邻物理内存中的数据取出对比,直到遇到‘\0'为止;所以建议把函数改成int CountSpace(char *pStr,int n);n用为字符数组长度;
下面是我写的一个程序,我运行过了,可以的
#includestdio.h
#define LEN 20 //字符数组的长度
/*
**定义一个函数用于计算字符串空格
*/
int CountSpace(char *pstr, int n)
{
char *p_str;
int sum = 0;
int i = 0;
//遇到字符串中‘\0’或者是字符数组的结尾时退出循环,空格的ASCII是' '
for( p_str = pstr; *p_str != '\0' i n; p_str ++, i ++ )
if( *p_str == ' ' ) sum += 1;
printf( "%d\n", i );
return sum;
}
/*
**用函数CountSpace()求出字符串中空格的个数
*/
void
main( void )
{
char str[LEN] = "I am a good boy";
int getch();
int i;
i = CountSpace( str, LEN );//用数组名做实参
printf( "%d", i );
getch();
}
在函数中有个printf( "%d\n", i ); 那个是用来判断循环次数的,不要也可以。你要是只用一个形参,且有'\0'判断结尾,你会发现你的循环次数超出字符数组的长度!虽然结果可能相同。。
我也是刚学C语言,(一个月)有机会多交流一下