C语言中strlen函数是怎么计数的?

Python018

C语言中strlen函数是怎么计数的?,第1张

char str[]="\tab\n\012\\\""

字符1: \t 转义字符:水平制表符 ,其ASCII 值9(十进制)

字符2、3:ab

字符4:\n 转义字符,换行符,其ASCII 值10(十进制)

字符5:\012 转义字符,其中012是8进制数,其ASCII值 同\n.

字符6:\\ 转义字符 反斜杠\,其ASCII值 92(十进制)

字符7:\" 转义字符 双引号",其ASCII值 34(十进制)

2.  printf("%d \n", strlen("IBM\n012\1\\"))

    字符1、2、3: IBM

    字符4:\n 转义字符

    字符5、6、7:012

    字符8:\1 其ASCII值 1(8进制).

    字符9:\\ 转义字符 反斜杠\,其ASCII值 92(十进制)

3. printf("%d \n",strlen("\t\"\065\xff\n"))

     字符1: \t 转义字符:水平制表符 ,其ASCII 值9(十进制)

    字符2:\" 转义字符 双引号",其ASCII值 34(十进制)

    字符3:\065 ,代表字符5,其中065为8进制 格式,其ASCII为53(十进制)

     字符4:\xff (这个我不知道怎么解释,请其它老师帮助解释)

     字符5:\n

4.   printf("%d \n",strlen("stop\0\n\""))

 

     字符1、2、3、4:stop

     因为strlen()函数遇到\0 就结束了,后面的字符就不去判断了。

     C语言中的字符串 是用\0作为 结束符。

希望我的解答 对你有所帮助,很高兴和你一起讨论和学习C语言。

使用fopen函数打开文件,使用fgetc()一个字符一个字符的读取,然后计数统计就可以啦,fget()从文件指针stream指向的文件中读取一个字符,读取一个字节后,光标位置后移一个字节,这个函数的返回值,是返回所读取的一个字节。如果读到文件末尾或者读取出错时返回EOF。#include<stdio.h>int main(){FILE *fpchar filename[50]int num=0printf("输入一个文件名: ")gets(filename)if((fp=fopen(filename,"r"))==NULL){printf("文件打开失败..\n")return }while(!feof(fp))fgetc(fp)&&num++printf("%s 文件中共有字符个数: %d\n",filename,num)fclose(fp)return }

函数声明:extern unsigned int strlen(char *s)

所属函数库:<string.h>

功能:返回s所指的字符串的长度,其中字符串必须以’\0’结尾

参数:s为字符串的初始地址

使用举例:

代码如下

编译运行结果

说明:

函数strlen比较容易理解,其功能和sizeof很容易混淆。其中sizeof指的是字符串声明后占用的内存长度,它就是一个操作符,不是函数;而strlen则是一个函数,它从第一个字节开始往后数,直到遇见了’\0’,则停止

第一 string头文件中的函数strlen 只可以用来测试字符型数组的长度,其他类型不可以

第二 如果要测试int 修改原函数中的参数,会导致数组长度变长(计算机会一直找下去,直到遇到\0)

第三 如果是字符数组,当里面的字符数少于数组长度时,可以正常输出用strlen,如果等于数组长度,则会出现问题

函数介绍:

(推荐教程:c语言教程)

strlen()函数用于计算字符串的长度,直到空结束字符,但不包括空结束字符。

语法结构:

size_t strlen(const char *str)

参数说明:

str -- 要计算长度的字符串。

返回值:

该函数返回字符串的长度