首页技术strlen求字符串长度例子 sizeof计算字符串长度

strlen求字符串长度例子 sizeof计算字符串长度

编程之家2026-06-29812次浏览

大家好,今天来为大家解答strlen求字符串长度例子这个问题的一些问题点,包括sizeof计算字符串长度也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

strlen求字符串长度例子 sizeof计算字符串长度

...就是用strlen测定字符串的长度,函数定义如下:

*p是char(字符型)指针变量

先将*p的地址*(字符串的第一个字符)赋给s,然后执行while循环,*p所指地址改变为最后一个字符的地址,p-s就是*p最后的地址减去最初的地址,得到的就是字符串的长度了。

逐字解释下你的程序

#include<studio.h>

#include<string.h>这个程序包含了2个头文件 studio和string

int test strlen(char*s)这是一个等待调用的子程序程序名为 strlen调用的时候,给入与

strlen求字符串长度例子 sizeof计算字符串长度

括号里的相同类型变量

{char*p=s;定义字符串变量 p并把其地址的第一个给指针 s

while(*p)当指针没有指到最后一位时

p++;字符串向后移动一位

return p-s;返回值为字符串的最后一位的地址(电脑中的物理地址)减去第一位的

地址

strlen求字符串长度例子 sizeof计算字符串长度

}

关于字符串在电脑中的存放的物理地址,一般是指针指向字符串的第一个物理地址,当调用的时候会依次取用

如字符串”angngongbi”

对应的逻辑地址物理地址(假设的)

a 0 oE0FHI2

n 1 0G3FTE2

g 2.......

n 3.......

g 4.......

o 5.......

n 6.......

g 7.......

b 8.......

i 9.......

c语言中strlen()怎么用

strlen为C语言库函数,包含于string.h中,作用为计算一个字符串(字符数组)中元素的个数,即从数组头部计数,直到遇到字符串结束符\0为止,计数结果不包括\0.

其声明为:

unsigned int strlen(char*s);

比如定义字符串:

char*p="this is for testing";

调用

strlen(p);

返回的结果就是p中元素的个数,即19。

需要注意的是,strlen并不是绝对安全的,如果在传入的字符数组的合法范围内,不存在结束符\0,那么strlen函数会一直访问下去,超出数组范围,即出现越界访问。

所以使用strlen时,程序员必须确认参数字符数组中包含\0值,否则会出现不可预知后果。

c语言中,计算字符串长度的程序

你的代码出现问题的原因是scanf("%s",&a);

,a是一个char类型的变量,系统为它分配了一个字节的内存空间,但是你却输入了一个字符串到以a的地址为首地址的一段连续的内存空间里,这样就出现了越界错误.但是printf函数并不检查越界错误,它会按正常的方法执行,然后程序统计出长度,打印出来结果.但是返回到调用main函数的操作系统后,系统会发现越界错误,所以在结果显示出来后才出错.至于你说的输入5个以下不会出错,也许是偶然,也许跟你的编译器有关.我用VS2005测试,只要输入就会出错。

如果你是只想求出输入的字符串的长度而不要求保存输入的字符串,下面的代码更好。你的标准输入缓冲区有多大,那么它就可以求出多长的字符串的长度,不会有越界。

#include

int

main()

{

int

len=0;

//getchar()函数从标准输入设备(即键盘)接收一个字符,返回该字符的ASCII码.因为回车被输入时被转换成换行符(LF,ASCII码为10),所以getchar()返回10时就知道输入结束了.

while(getchar()!=10)

len++;

printf("It's

length

is

%d.\n",len);

return

0;

}

好了,文章到这里就结束啦,如果本次分享的strlen求字符串长度例子和sizeof计算字符串长度问题对您有所帮助,还望关注下本站哦!

c语言入门经典txt下载,c语言书电子版asp的含义( asp是什么意思)