strlen的头文件,C语言中测试字符串长度的函数
strlen的头文件,C语言中测试字符串长度的函数详细介绍
本文目录一览: 用strlen()时,头文件要用什么?
头文件要用#include
。
strlen()只是统计字符串的长度,统计到'\0'结束,但不包括'\0',这个与sizeof()不一样。
对于用双引号引起来的字符串,系统默认最后一位字符为'\0',如你自己定义的:
chara[]="china";
charb[]={"china"};
另外,数组初始化还可以是一个字符一个字符赋值,如:
charc[]={'c','h','i','n','a'};
chard[]={'c','h','i','n','a','\0'};
但系统不会自动给你在最末位添加'\0’。
扩展资料:
头文件的作用:
1、头文件可以定义所用的函数列表,方便查阅你可以调用的函数。
2、头文件可以定义很多宏定义,就是一些全局静态变量的定义,在这样的情况下,只要修改头文件的内容,程序就可以做相应的修改,不用亲自跑到繁琐的代码内去搜索。
3、头文件只是声明,不占内存空间,要知道其执行过程,要看你头文件所申明的函数是在哪个.c文件里定义的,才知道。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
strlen 函数的源代码
代码源为:
int Strlen(const char * const s)
{
int i;
for (i = 0; s[i]; i++) ;
return i;
}
扩展资料:注意事项
原型:extern unsigned int strlen(char *s);
头文件:string.h
格式:strlen (字符数组名)
功能:计算字符串s的(unsigned int型)长度,不包括'\0'在内
说明:返回s的长度,不包括结束符NULL。
例如:
#include
#include
int main(void)
{
char *s="Golden Global View";
printf("%s has %d chars",s,strlen(s));
getchar();
return 0;
}
strlen在那个库里
c语言函数库。c语言strlen函数用法是c语言库的函数,strlen函数是包含在函数库里的一种计算字符串长度的函数,它包含在#include这个头文件中,所以说strlen在c语言函数库里。如果要知道如何用函数办法实现strlen我们需要知道strlen的实现机理。
在vc++编程中,strlen取字符串长度函数来自哪个文件?
strlen是c语言标准头文件string.h里面的,在VC安装目录C:\Program Files\Microsoft Visual Studio\VC98\Include文件夹里可以找到。
属于string.h,是标准输入输出的函数文件
C语言中测试字符串长度的函数
下面是改好的程序,你仔细看一下:
#include
main()
{
int a=0;
char c;
printf("请输入一段英文字母:");
while((c=getche()) != '\r')
{
if(c&&('A'<=c&&c<='z'))
a++;
}
printf("您输入了%d个字符",a);
}
这是因为你的判断条件错了啊!
这里啊if(c&&('a'<='z'&&'A'<='Z'))你把它改成if(c&&('A'<=c&&c<='z'))就行了。因为你这里你是要统计字母的数量。而你输入的即有字母又有数字,这时你就要用if语句判断。当是字母时你才计数。要统计字母只要满足上述条件就行(即if(c&&('A'<=c&&c<='z')))。它表示当c不为空且当c为>='A'且为<='z'时(即c为字母),则i++。即统计它的数量。而你的呢是if(c&&('a'<='z'&&'A'<='Z'))它只要c不为空就可以满足条件了且你的条件c&&('a'<='z'&&'A'<='Z'))后半部分('a'<='z'&&'A'<='Z'))返回值永远都是真,因为a和A永远都比z和Z小呀。前半部分的c是你输入的值,如果不是输入了0对应的ascii码值48,那也永远是真,所以a条件总是成立,a总是++;结果当然就会不对了。你是判断条件错了啊。稍微改一下就行了。
你的if中的条件写的有问题,应改为
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
这样说明只有你输入的是字母时,a的值才执行++操作。而你的条件c&&('a'<='z'&&'A'<='Z'))后半部分('a'<='z'&&'A'<='Z'))返回值永远都是真,因为a和A永远都比z和Z小呀。前半部分的c是你输入的值,如果不是输入了0对应的ascii码值48,那也永远是真,所以a条件总是成立,a总是++;结果当然就会不对了
改成这样吧:
#include
int main()
{
int a=0;
char c;
printf("请输入一段英文字母:");
while((c=getche()) != '\r')
{
if(c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')
a++;
}
printf("\n您输入了%d个字符\n",a);
}
你的if中的条件写的有问题,应改为
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
这样说明只有你输入的是字母时,a的值才执行++操作。而你的条件c&&('a'<='z'&&'A'<='Z'))后半部分('a'<='z'&&'A'<='Z'))返回值永远都是真,因为a和A永远都比z和Z小呀。前半部分的c是你输入的值,如果不是输入了0对应的ascii码值48,那也永远是真,所以a条件总是成立,a总是++;结果当然就会不对了
if(c&&('a'<='z'&&'A'<='Z'))
这个语句恒为真了
修改后的程序
#include
void main(void)
{
int a=0;
char c;
printf("请输入一段英文字母:");
while((c=getchar())!='\n')
{
if((c<='z'&&c>'a')||(c>'A'&&c<='Z'))
{
a++;
}
}
printf("您输入了%d个字符",a);
}
我也是初学者LZ共勉
C语言中测试字符串长度的函数是strlen()
函数原型:
unsigned int strlen (char *s);头文件:
#include
参数说明:s为指定的字符串;
功能说明:strlen()用来计算指定的字符串s 的长度,不包括结束字符'\0';
返回值:返回字符串s 的字符数;
注意:strlen() 函数计算的是字符串的实际长度,遇到第一个'\0'结束。
示例:
#include
#include
int main(){ char str[] = "abcxyz"; printf("strlen(str)=%d\n", strlen(str1)); return 0;}//输出结果:strlen(str)=6
用到strlen(函数,则应包含多少个头文件)
需要在#include
的基础上
多添加一个 #include
就够了。
扩展资料:
c++中 string与string.h 的作用和区别:一般一个C++的老的带".h"扩展名的库文件,比如iostream.h,在新标准后的标准库中都有一个不带".h"扩展名的相对应,区别除了后者的好多改进之外,还有一点就是后者的东东都塞进了"std"名字空间中。但唯独string特别。问题在于C++要兼容C的标准库,而C的标准库里碰巧也已经有一个名字叫做"string.h"的头文件,包含一些常用的C字符串处理函数。这个头文件跟C++的string类半点关系也没有,所以
并非
的"升级版本",他们是毫无关系的两个头文件。
c++
常用函数如下:
strlen求字符串长度
strcmp比较2个字符串是否一样
strcat字符串连接操作
strcpy字符串拷贝操作
资料来源:C语言中文网
c语言 #include
c++ #include
cstring不是简单的表示是c++的头文件,最重要的是里面加入的std这个命名空间。在c++里面用cstring更好。
#include
即可
只需要 #include
拓展资料:
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。
参考资料:百度百科:strlen
C语言中strlen(s)是什么意思?S是一个数组!
strlen(s):通常用来计算字符串s的长度
如:
char s[256];
memset(s,'\0',sizeof(s));
strcpy(s,"12345678");
那么strlen(s)的结果为:8
strlen是C语言标准库提供的一个函数,给你提供strlen的一个版本,你就明白其中的s是什么意思了。
size_t strlen(const char *s)
{
const char *sc;
for(sc = s; *sc != '\0';++sc)
;
return (sc-s);
}
那s[]一定是个char的数组。具体来说,s是一个数组的首地址。
strlen(char*)的形参只能是指针。
数组长度
s真正占用的内存打下,不是数组
strlen(s)表示求字符串s的长度。
strlen函数原型:int strlen(char *s);
头文件:string.h
格式:strlen (字符数组名)
功能:计算给定字符串的(unsigned int型)长度,不包括'\0'在内
说明:返回s的长度,不包括结束符NULL。
参考代码:
#include
#include
int main(){ char s[100]="GoldenGlobalView"; printf("%s has %d chars",s,strlen(s)); return 0;}/*运行结果:GoldenGlobalView has 16 chars*/
在C语言中Strlen是什么意思?
strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。
函数原型:
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'在内
扩展资料
实例——
(在 Dev-C++ 5.11中运行通过)
//#include
//C++万能头文件
#include
#include
#include
using namespace std;
int main(void)
{
ios::sync_with_stdio(false);
char s[10000]="Hello, World!";
cout << s << "has" << strlen(s) << "character(s)." << endl;
//printf("%s has %d character(s).",s,strlen(s));
//getchar();
return 0;
}
运行结果为:
Hello, World! has 13 character(s).
Sizeof与Strlen的区别
1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。
该类型保证能容纳实现所建立的最大对象的字节大小。
2.sizeof是算符,strlen是函数。
3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。
sizeof还可以用函数做参数,比如:
short f();
printf("%d\n", sizeof(f()));
输出的结果是sizeof(short),即2。
4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。
5.大部分编译程序 在编译的时候就把sizeof计算过了 是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因
char str[20]="0123456789";
int a=strlen(str); //a=10;
int b=sizeof(str); //而b=20;
6.strlen的结果要在运行的时候才能计算出来,时用来计算字符串的长度,不是类型占内存的大小。
7.sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧。这是因为sizeof是个操作符不是个函数。
8.当适用了于一个结构类型时或变量, sizeof 返回实际的大小,
当适用一静态地空间数组, sizeof 归还全部数组的尺寸。
sizeof 操作符不能返回动态地被分派了的数组或外部的数组的尺寸
9.数组作为参数传给函数时传的是指针而不是数组,传递的是数组的首地址,
如:
fun(char [8])
fun(char [])
都等价于 fun(char *)
在C++里参数传递数组永远都是传递指向数组首元素的指针,编译器不知道数组的大小
如果想在函数内知道数组的大小, 需要这样做:
进入函数后用memcpy拷贝出来,长度由另一个形参传进去
fun(unsiged char *p1, int len)
{
unsigned char* buf = new unsigned char[len+1]
memcpy(buf, p1, len);
}
我们能常在用到 sizeof 和 strlen 的时候,通常是计算字符串数组的长度
看了上面的详细解释,发现两者的使用还是有区别的,从这个例子可以看得很清楚:
char str[20]="0123456789";
int a=strlen(str); //a=10; >>>> strlen 计算字符串的长度,以结束符 0x00 为字符串结束。
int b=sizeof(str); //而b=20; >>>> sizeof 计算的则是分配的数组 str[20] 所占的内存空间的大小,不受里面存储的内容改变。
上面是对静态数组处理的结果,如果是对指针,结果就不一样了
char* ss = "0123456789";
sizeof(ss) 结果 4 ===》ss是指向字符串常量的字符指针,sizeof 获得的是一个指针的之所占的空间,应该是
长整型的,所以是4
sizeof(*ss) 结果 1 ===》*ss是第一个字符 其实就是获得了字符串的第一位'0' 所占的内存空间,是char类
型的,占了 1 位
strlen(ss)= 10 >>>> 如果要获得这个字符串的长度,则一定要使用 strlen
strlen():返回一个串有多少个字符
sizeof():返回某类型占几个字节。如:int a;则sizeof(a)返回值为2。如果有定义float x;则sizeof(x)返回值为4.
strlen是求字符串实际长度的意思,例如char *str=“hello world”。则strlen[str]的返回值是11.sizeof是用来求一个变量所占的内存的。
strlen是库函数,计算字符串长度。
sizeof是操作符,计算变量长度。
strlen是求字符串的长度,但不包括字符串的null结束符。
strlen为C语言库函数,包含于string.h中,作用为计算一个字符串(字符数组)中元素的个数,即从数组头部计数,直到遇到字符串结束符\0为止,计数结果不包括\0。
需要注意的是,strlen并不是绝对安全的,如果在传入的字符数组的合法范围,不存在结束符\0,那么strlen函数会一直访问下去,超出数组范围,即出现越界访问。所以使用strlen时,程序员必须确认参数字符数组中包含\0值,否则会出现不可预知后果。
扩展资料:
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。
sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。
该类型保证能容纳实现所建立的最大对象的字节大小。
sizeof是取字节运算符(关键字),strlen是函数。
sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以'\0'结尾的。
参考资料来源:百度百科-strlen
strlen()函数是什么意思?
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'char h[4]={'f','0',0,'h'} ;//注:不能写成char h[4]="f0\0h";因为以""括起来的为字符串,它隐式的以'\0'结尾,而'\0'也占一个字节,所以应写为char h[5]="f0\0h"
int c=strlen(h);//c=2,因为遇到了'\0'(注意'0'不等于'\0',而0等于'\0')
扩展资料:
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。
区别sizeof:
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。
⒈sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。
该类型保证能容纳实现所建立的最大对象的字节大小。
⒉sizeof是取字节运算符(关键字),strlen是函数。
⒊sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以'\0'结尾的。
⒋数组做sizeof的参数不退化,传递给strlen就退化为指针了。
⒌大部分编译程序 在编译的时候就把sizeof计算过了是类型或是变量的长度。这就是sizeof(x)可以用来定义数组维数的原因
6.strlen的结果要在运行的时候才能计算出来,是用来计算字符串的长度,不是类型占内存的大小。
7.sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧。这是因为sizeof是个操作符不是个函数。
⒏当适用了于一个结构类型时或变量, sizeof 返回实际的大小,
当适用一静态地空间数组, sizeof 归还全部数组的尺寸。
sizeof 操作符不能返回动态地被分派了的数组或外部的数组的尺寸
⒐数组作为参数传给函数时传的是指针而不是数组,传递的是数组的首地址,
在C++里参数传递数组永远都是传递指向数组首元素的指针,编译器不知道数组的大小
如果想在函数内知道数组的大小, 需要这样做:
进入函数后用memcpy拷贝出来,长度由另一个形参传进去
参考资料:百度百科-strlen
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
推荐于 2019-09-01
查看全部5个回答
惠普官网首页-京东电脑办公,购特色!
关注华硕笔记本的都在看
惠普官网首页-「京东」电脑办公,笔记本/CPU/鼠标/键盘/打印机,应有尽有,一站购齐!
北京京东世纪信息技..广告
高中数学知识大全-高中九科全套重难点知识汇总资料下载
关注高中数学的都在看
高中数学知识大全,内容涵盖语文/数学/英语/政治/历史/地理/物理/化学/生物各门学科;各类知识点/试卷/习题/视频应有尽有,作文,听力,阅读专项突破
北京百家互联科技有..广告
相关问题全部
广告高中数学大全高考数学冲刺备考技巧,解题模板都在这了!
我将高中数学大全解题技巧总结为“12大招”“133个解题标志”,数学是能直接通过短时间补习提高分数的学科,“254个秒题方法”,跟我学快速提分。点击领取试听课程
572020-06-14
C语言中strlen()函数的意思?
strlen()是读取字符串长度的意思,举例如下 char a[]={'a','b','c'}; return strlen(a); 返回字符串a的长度,是3。 需要注意的是,strlen()函数需要的头文件。 如有疑问请您追问。
26 浏览12622017-12-15
在C语言中Strlen是什么意思?
Sizeof与Strlen的区别 1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。 该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。 sizeof还可以用函数做参数,比如: short f(); printf("%d\n", sizeof(f())); 输出的结果是sizeof(short),即2。 4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。 5.大部分编译程序 在编译的时候就把sizeof计算过了 是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因 char str[20]="0123456789"; int a=strlen(str); //a=10; int b=sizeof(str); //而b=20; 6.strlen的结果要在运行的时候才能计算出来,时用来计算字符串的长度,不是类型占内存的大小。 7.sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧。这是因为sizeof是个操作符不是个函数。 8.当适用了于一个结构类型时或变量, sizeof 返回实际的大小, 当适用一静态地空间数组, sizeof 归还全部数组的尺寸。 sizeof 操作符不能返回动态地被分派了的数组或外部的数组的尺寸 9.数组作为参数传给函数时传的是指针而不是数组,传递的是数组的首地址, 如: fun(char [8]) fun(char []) 都等价于 fun(char *) 在C++里参数传递数组永远都是传递指向数组首元素的指针,编译器不知道数组的大小 如果想在函数内知道数组的大小, 需要这样做: 进入函数后用memcpy拷贝出来,长度由另一个形参传进去 fun(unsiged char *p1, int len) { unsigned char* buf = new unsigned char[len+1] memcpy(buf, p1, len); } 我们能常在用到 sizeof 和 strlen 的时候,通常是计算字符串数组的长度 看了上面的详细解释,发现两者的使用还是有区别的,从这个例子可以看得很清楚: char str[20]="0123456789"; int a=strlen(str); //a=10; >>>> strlen 计算字符串的长度,以结束符 0x00 为字符串结束。 int b=sizeof(str); //而b=20; >>>> sizeof 计算的则是分配的数组 str[20] 所占的内存空间的大小,不受里面存储的内容改变。 上面是对静态数组处理的结果,如果是对指针,结果就不一样了 char* ss = "0123456789"; sizeof(ss) 结果 4 ===》ss是指向字符串常量的字符指针,sizeof 获得的是一个指针的之所占的空间,应该是 长整型的,所以是4 sizeof(*ss) 结果 1 ===》*ss是第一个字符 其实就是获得了字符串的第一位'0' 所占的内存空间,是char类 型的,占了 1 位 strlen(ss)= 10 >>>> 如果要获得这个字符串的长度,则一定要使用 strlen
49 浏览130012017-10-15
c++ strlen函数干嘛用,能详细点吗
strlen()是计算一个字符串的有效数据长度。 从你问题补充看,这里写的有问题,因为str不能是int类型,这样就不是字符串了,strlen()也不能正常工作了。 char str[1000]; strcpy( str , "hello world" ); //给str赋值 int i=strlen(str) ; //得到str中数据的长度,此时为11 = 5+1+5 字符串一定会有一个结束符,strlen在计算时,就是从str的首地址位置,一直到遇到\0为止,计算字符个数。返回给调用者。详情可查阅百科。
84 浏览108282017-10-10
strlen函数
strlen函数的原理你都搞错了,其原型应该是这样的:int strlen(char *);它接受的是一个char*类型的参数,真不晓得你的这个是怎么传递进去的。 strlen计算字符串的长度例如"abc"的长度是3.但是实际上如果将其放到字符数组中的话,应该占4个元素。因为字符串是以字符'\0'结尾的,但是这个'\0'在我们的字符串是隐藏的,我们看不到。实际上是有的.例如: char a[4]="abc";//这里数组的元素个数至少应该是4,否则此字符串不叫字符串了,只能叫字符数组了。 strlen判断一个字符串的结束就是以其末尾的'\0'为界限。其实现代码可以模拟为以下: int strlen(char *p) { int i=0; while(*p++)i++; return i; } 所以他是不包括'\0'这个字符的。
561 浏览771992017-09-09
使用strlen()函数的问题
字符串和字符数组的区别:字符串用字符数组保存,表示的是字符数组首地址到第一个'\0'为止的内容。 你的程序里,strlen(a)等于7,其实是strlen越界访问了。在a的4个字节后面,有一些未使用的内存,那边前3个字节非0,第4个字节是0,所以合起来'\0'前面有7个非0字符。
42 浏览86392017-10-05
3评论
来到火星的小A2
迪丽热巴回答c语言题目...
nfngng2
char f[]="123456\01111";
int b=strlen(f);//b=6,因为遇到了'\0' ;这里输出是9啊
评论两句3103
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'
char h[4]={'f','0',0,'h'} ;//注:不能写成char h[4]="f0\0h";因为以""括起来的为字符串,
它隐式的以'\0'结尾,而'\0'也占一个字节,所以应写为char h[5]="f0\0h"
int c=strlen(h);//c=2,因为遇到了'\0'(注意'0'不等于'\0',而0等于'\0')
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'
char h[4]={'f','0',0,'h'} ;//注:不能写成char h[4]="f0\0h";因为以""括起来的为字符串,它隐式的以'\0'结尾,而'\0'也占一个字节,所以应写为char h[5]="f0\0h"
int c=strlen(h);//c=2,因为遇到了'\0'(注意'0'不等于'\0',而0等于'\0')
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
c语言中strlen是什么意思
是一个标准库函数。功能:计算字符串s的长度,但是不包括'\0'在内。
当头文件包含了
#include
该函数就能使用了。
例如 char *s="hello";
int i=strlen (s);
printf("%d\n",i);输出的为5 因为字符串"hello"一共有五个字符。
是一个库函数。定义在
中。用处是求字符串的长度。
strlen是函数
strlen()函数的作用是统计给定字符串的长度。
标准函数 求字符串长度
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++语言函数)