首页 > 编程知识 正文

c语言strlen计算字符串长度,用于返回字符串的长度函数是

时间:2023-05-05 04:48:16 阅读:20801 作者:3524

以下是我的测试文件。 # include stdio.h # include stdlib.h # include string.hint main ({ char str1[ 10 ]=' 123456789 '; char str2[10]='1234567890abcd '; char str3[10]='12345 '; char str4[10]='12345 12 '; char str5[10]={'1'、'2'、'3'、'4'、' '、'5'、'6'}; int len1、len2、len3、len4、len5; len1=Strlen(str1; len2=Strlen(str2; len3=Strlen(str3; len4=Strlen(str4; len5=Strlen(str5; printf(str1----%s,len----%d(n ),str1,len1); printf(str2----%s,len----%d(n ),str2,len2); printf(str3----%s,len----%d(n ),str3,len3); printf(str4----%s,len----%d(n ),str4,len4); printf(str5----%s,len----%d(n ),str5,len5); printf ()=====gameover=======(n ) ); printf((n ); 返回0; (以下是我的测试结果。 str1-- 123456789,len---- 9str2----1234567890123456789,len----19str3----12345,len---- 5st R4-------12349s

分析结果: strlen ()根据" man strlen "的结果计算字符串s的长度,但不包括结尾字符" "。 因此,“”字符表示字符串的结束。 在我的测试中:

str1的长度很容易知道。

str2 str2的长度为什么会错呢? 这是因为,在分配存储单元时," abcd "字符不能存储在str2的长度为10的存储单元中,并且不能进行分配、存储的越界,所以" abcd "不分配存储单元,并且str2的末尾的字符"" 如果在读取str2时不接触末尾的字符“”,则自动读取str1的内容,str2在截断“abcd”的同时连续读取str1的内容,与strlen(str2)的结果是str1 str2的合计str3的长度也很容易理解。

str4请注意,str4中的空白字符介于'5'和'1'之间。 这是空白字符,而不是末尾字符“”,因此str4的长度也很容易理解。

str5在读取和判断字符串长度时从第一个“”开始,因为我明确地向字符串中添加了末尾字符“”。 这样,在访问str5时会被误解为第一个“”。

由为知笔记(Wiz )转载于:https://www.cn blogs.com/lint ex 9527/p/3999493.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。