可以用strlen("ab'1'\\\12803")来求这个字符串的长度。
也可以用sizeof("ab'1'\\\12803")来求,但是这个求出的结果是多了一个字符串结束符\0。
可以试着输出这个字符串看看是不是10个字符。
strlen()函数判断的字符串长度是以\0为结尾作为标志的。
当char * m=new char[TOKEN_LENGTH]后,虽然为指针分配了地址,但是其指向的内容未被初始化,所以m指向的内容是未知的,可能在第24个字符的位置发现了\0所以strlen()显示长度为24。
数据类型
字符串数据类型是建模在形式字符串的想法上的数据类型。字符串是几乎在所有编程语言中可以实现的非常重要和有用的数据类型。在某些语言中它们可作为基本类型获得,在另一些语言中做为复合类型获得。多数高级语言的语法允许通常用某种方式引用起来的字符串来表示字符串数据类型的实例;这种元字符串叫做“文本”或“字符串文本”。
以上内容参考:百度百科-字符串
C语言的字符串是由字符数组形式保存的,并约定'\0'(ascii码值为0)作为字符串结束符。其长度为从字符串开始,到'\0'结束,所有字符的个数,不包括'\0'本身。
要获得字符串长度,有两种方法可以使用:
1
使用库函数strlen()。
strlen声明在string.h中,原型为
int
strlen(char
*str)
功能为求str的长度,并返回。
2
根据定义求长度。
对于字符串str,
可以用如下代码求长度:
int
len
for(len
=
0
len
++)
if(str[len]
==
'\0')break
当str[len]为0时,退出循环,退出后的len值就是str的长度。
首先,我们输入头文件:#include<stdio.h>#include<string.h>
接着,我们输入程序,请求用户输入字符串,再计算字符串的长度。
运行程序,检测没有错误后,点击右上方的"!",执行程序。
程序执行结果如图所示,我们任意输入一个字符串。
按enter键,如图所示,系统就计算出了字符串的长度。