大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
strlen()只是统计字符串的长度,统计到'\0'结束,但不包括'\0',这个与sizeof()不一样。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网络空间、营销软件、网站建设、石龙网站维护、网站推广。
对于用双引号引起来的字符串,系统默认最后一位字符为'\0',如你自己定义的:
char a[]="china";
char b[]={"china"};
另外,数组初始化还可以是一个字符一个字符赋值,如:
char c[]={'c','h','i','n','a'};
char d[]={'c','h','i','n','a','\0'};
但系统不会自动给你在最末位添加'\0’
所以在统计char c[]={'c','h','i','n','a'}时,统计到a时,系统还没找到\0,所以会继续统计,直到找到'\0'为止。所以就有你第三个值为11的情况,这个根据不同的运行环境而定。
函数声明: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 -- 要计算长度的字符串。
返回值:
该函数返回字符串的长度
strlen()是读取字符串长度的意思,举例如下
char a[]={'a','b','c'};
return strlen(a);
返回字符串a的长度,是3。
需要注意的是,strlen()函数需要string.h的头文件。
如有疑问请您追问。
strlen:计算字符串长度的库函数名。
str:通常,程序员喜欢用它作 字符串 变量名。它是string(英文词字符串的缩写)。
len:通常,程序员喜欢用它作 变量名。它是 length(英文词长度的缩写)。
例如:
char str[20]="I am a student";
int len;
len = strlen(str);
printf("the string length is: %d",len);
扩展资料:
函数原型
extern unsigned int strlen(char *s);
在Visual C++ 6.0或Dev-C++中,原型为size_t strlen(const char *string);,其中size_t实际上是unsigned int,在VC6.0或Dev-C++中可以看到这样的代码:
typedef unsigned int size_t;
头文件:string.h或cstring
格式:strlen (字符指针表达式)
功能:计算给定字符串的(unsigned int型)长度,不包括'\0'在内
说明:返回s的长度,不包括结束符NULL。
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。
参考资料来源:百度百科-strlen (C/C++语言函数)
\\ --------------1
141-------------3
\141------------1
abc-------------3
\t----------------1
转义序列:
\\ 反斜杠
\a 警告
\b 退格
\f 换页
\n 换行
\r 回车
\t 跳格
\v 垂直跳格
\ddd ddd 是 1、2 或 3 位八进制数字。这些转义序列作为由八进制数指定的具有数字值的字节显示。
strlen(char *)
作用:检测字符串实际长度。
如:char s[]="1234567";
int a=strlen(s);//a=7
实际上strlen(char *)检测的是'\0',strlen(char *)碰到'\0'就返回'\0'以前的字符数。
又如:
char f[]="123456\01111";
int b=strlen(f);//b=6,因为遇到了'\0'
扩展资料
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。
⒈sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。
该类型保证能容纳实现所建立的最大对象的字节大小。
⒉sizeof是取字节运算符(关键字),strlen是函数。
⒊sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以'\0'结尾的。
⒋数组做sizeof的参数不退化,传递给strlen就退化为指针了。
⒌大部分编译程序 在编译的时候就把sizeof计算过了是类型或是变量的长度。这就是sizeof(x)可以用来定义数组维数的原因
参考资料:百度百科-strlen