用纯C语言取得文件长度

用纯C语言取得文件长度,第1张

第一种方法: 也可以读取一个不定长的文件。

FILE pFile = fopen( pFilePath, \"r\" );

if ( pFile == NULL )

{

return 0;

}

fseek( pFile, 0, SEEK_END );

iFileLen = ftell( pFile );

rewind( pFile );

m_pFileText = new char[iFileLen+1];

fread( m_pFileText, 1, iFileLen, pFile );

m_pFileText[iFileLen] = 0;

fclose( pFile );

第二种方法:

// 计算字符个数

FILE pFile = fopen( pFilePath, \"r\" );

char ch;

int num = 0;

while ( ch = getc( pFile ) != EOF )

{

num++ ;

}

fclose( pFile );

#include<cstdio>

int main()

{

char s[20];

charp;

printf("please input a string(less than 20 character):\n");

//scanf("%s",s);不能读入空格

gets(s);

p=s;

while(p!='\0')

p++;

printf("The string lenth is%d\n",p-s);

return 0;

}

printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

int a=1234;

printf("a=%d\n",a);

输出结果为a=1234。

扩展资料:

main()函数的可以包括两个参数

第一个参数的类型为int型;

第二个参数为字符串数组

通常情况下,将第一个参数命名为argc,第二个参数为argv(当然参数名字可以换)。由于字符串数组有两种表达方式,因此,main函数存在两种书写方法:

1、形式一:

int main(int argc,charargv[])//这里使用charargv[]

{

return 0;

}

2、形式二:

int main(int argc,charargv)//这里使用charargv

{

return 0;

}

使用方法

参数的含义

int argc:表示字符串的数量argc=1+用户输入的字符串数目, *** 作系统负责计算数量,程序员不用管,只需要正确使用即可,例如用户输入2个字符串,argc=1+2=3;

charargv[]:字符串的数组,即多个字符串,形式如下:

argv[0]=可执行文件名称,例如testexe(非用户输入, *** 作系统根据可执行文件名称自动生成)

argv[1]=字符串1

argv[2]=字符串2

argv[3]=字符串3

C语言中字符串长度的函数是strlen(),一个字符的长度为1;

函数原型:

unsigned int strlen (char s);头文件:

#include <stringh>参数说明:s为指定的字符串;

功能说明:strlen()用来计算指定的字符串s 的长度,不包括结束字符'\0';

返回值:返回字符串s 的字符数;

注意:strlen() 函数计算的是字符串的实际长度,遇到第一个'\0'结束。

示例:

#include<stdioh>#include<stringh>int main(){ char str[] = "ab\nxyz";//\n为回车字符,占一个字节 printf("strlen(str)=%d\n", strlen(str)); return 0;}//输出结果:strlen(str)=6 收起

在头文件位置写

#include<stringh>

然后在后面用b=strlen(a);

b是一个int型的变量 a是字符串或者字符数组得首地址,也就是名字比如a[20],

你好

应该这样理解

首先,就c语言来讲,字符串的实现一般使用数组,例如

char

s[]

=

"hello";

hello里面有五个字符

分别是

h

e

l

l

o

由于c语言规定在存放字符串的数组里要以字符串结束符来结束

也就是‘\0’

所以上面定义中的数组s长度为字符总个数5

加上一个结束符‘\0’

也就是6

那么

字符串的长度就是5

但该数组s的长度就是6

至于通俗的数组长度,应该就指数组里面可存放元素的个数

例如char

s[100]

=

"hello";

虽然字符串s的长度为5

但这时数组长度就为100

希望能明白

我的方法和楼上的大同小异用指针法:#include "stdioh"

void main()

{char str[128];<br> char p;<br> int count=0;<br> p=str;<br> gets(str);<br> while(p++!='\0')<br> count++;<br> printf("%d",count);<br>}非指针法(这个方法是调用系统函数,比之自己写的函数简单明了):#include "stdioh"

#include "stringh"

void main()

{char str[128];<br> gets(str);<br> printf("%d",strlen(str));<br> }

以上就是关于用纯C语言取得文件长度全部的内容,包括:用纯C语言取得文件长度、c语言计算字符串的长度(用指针)、c语言求字符串长度,的函数理解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10149188.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存