网站建设资讯

NEWS

网站建设资讯

c语言space函数 c语言中space

C语言,获取硬盘剩余空间函数的使用方法。GetDiskFreeSpaceEx函数使用方法

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

C语言函数

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; //返回修改之后的字符串指针

}

用C语言写一个函数int CountSpace(char *pStr);统计字符串中空格的数目

要解决的问题主要是怎么判断字符串的结尾(空格的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语言,(一个月)有机会多交流一下


名称栏目:c语言space函数 c语言中space
URL标题:http://cdweb.net/article/ddjiopi.html