c语言计算字符数组的长度

1、在c语言中,可以通过库函数strlen来计算字符串的长度,也可以通过循环计数来求取字符串长度。
函数原型:unsigned
int
strlen(char
*str);

能:统计字符串str中字符的个数,不包含'\0'


值:返回字符个数
2、用strlen函数实现:
char str[20];
int len; // 保存数组的长度
scanf("%s", str);
len = strlen(str); // 计算字符数组str的长度
注:需将头文件#include
添加进源文件中。3、用循环来实现:
char str[20];
int len=0; // 保存数组的长度
scanf("%s", str);
while(str[len] != '\0') // 未检测到结束字符
{
len++; // 统计字符数组str的长度
}

㈡ C语言问题,关于字符数组的长度问题

哎。strlen()是在string.h里面的,getch()是在conio.h里面的,不过,我用的是CFree,至于其它的编译器,我就不知道了。
至于你的问题,当你仔细看看他们的结果,你就会有结论了。
很明显,strlen(q)的值是一样的,不同的是p的字符长度
而它们的区别,就在于,它们一个有数组的长度,另一个没有。
数组q,它的长度是10,所以一开始就会分配10个大小为sizeof(char)的空间,然后,就把a,b,c分别放进从分配的第一个,第二个,第三个空间里面,然后,剩下的变为0()也就是'\0'。
所以用strlen(q)的时候,就是3
而没有长度的p,它缺省了长度,所以系统就会按你给的元素个数分配,这里p有3个元素,所以就分配3个大小为sizeof(char)的空间,当你用strlen(p)的时候,因为strlen()是以字符串终结符'\0'来判定字符串长度的,所以呢,strlen(p)是一个不确定值。
如果你还没能理解为什么是一个不确定值,那就继续看下去。
在C中,是不会检测是否越界的,你可以顺着数组一直访问下去,比如你定义一个 int a[10]
你可以访问a[12],a[13](当然也可以访问a[-1],a[-100]),只是这些值是不确定的。它访问的方式,是从数组的起始地址开始,按照数组下标值,进行相对位移(它们所跳过的长度是数组类型的长度,比如上面,是跳过sizeof(int)的长度)。
而strlen()就是从它首地址开始,一个个开始检测,是否达到'\0‘,然后返回长度值。
当你调用strlen()的时候,如果没有终止符'\0’,它就会越界检查,直到找到'\0‘。
就像 char a[3]={'a','b','c'},它也是一个不确定值。
明白了没,不懂继续追问。
写这么多,真的好累。。。

㈢ c语言字符串的长度怎么看

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的长度。

㈣ C语言中关于字符数组的长度问题

r[]={'a','b','c'};
这是个字符数组,系统只为它分配了3个字节的空间,但是strlen只有遇到'\0'才会返回回,于是答它会向后继续进行,直到有'\0',这其实是越界(或许没有,可能访问的是q[10])了.
你可以这样
printf("%s\n", r);来查看下打印的信息。
在我的上面(TC)是
3 3 3 9

㈤ C语言编程中,输入一个字符串数组,如何得出该数组的长度

使用C语言函数strlen()

函数原型:extern unsigned int strlen(char *s);,在Visual C++ 6.0中,原型为size_t strlen( const char *string );,其中size_t实际上是unsigned int,在VC6.0中可以看到这版样的代码:typedef unsigned int size_t;。
头文件:权string.h
功能:计算字符串s的(unsigned int型)长度
说明:返回s的长度,不包括结束符NULL。
程序举例:
#include <string.h>
#include<stdio.h>
int main(void)
{
char s[]="Golden Global View";
printf("%s has %d chars",s,strlen(s));
return 0;
}

㈥ c语言中一个字符串数组的最大长度是多少

只要内存足够,数组不限制的。字符串变量的话,各语言中一般都是1G字节(2的30次方-1)的限制。

㈦ C语言 字符串长度

这个字符串长度为10个字符。

你可以用strlen("ab'1'\\\12803")来求这个字符串的长专度。
也可以用sizeof("ab'1'\\\12803")来求,但是这属个求出的结果是多了一个字符串结束符\0。

你可以试着输出这个字符串看看是不是10个字符。

实际上,这10个字符分别为:

1、a
2、b
3、'
4、1
5、'

6、\\(\\表示:前一个表示这是一个转义字符,后一个才是字符串中的真实字符)

7、\12(同上,\表示这是一个转义字符,其后面的1~3个数字位是一个八进制数,在这里,第3个数字为8,所以它不是这个八进制数的一部分,即这个八进制数应该是12,转换为10进制数即为10,对应的ASCII码为一个换行符)

8、8
9、0
10、3

注:\用来说明一个转义字符,如\\表示反斜杠字符“\”,\ddd表示1~3位八进制数所代表的字符(ASCII码),\xhh表示1~2位十六进制数所代表的字符。

㈧ c语言 计算字符串长度

C语言的抄字符串是由字符数组形式袭保存的,并约定''(ascii码值为0)作为字符串结束符。其长度为从字符串开始,到''结束,所有字符的个数,不包括''本身。

要获得字符串长度,有两种方法可以使用,使用库函数strlen()。strlen声明在string.h中,原型为int strlen(char *str);功能为求str的长度,并返回。对于字符串str, 可以用代码求长度。当str[len]为0时,退出循环,退出后的len值就是str的长度。

拓展资料:使用strlen函数,包含在头文件string.h里,功能就是计算字符串s的(unsigned int型)不包括''在内的长度。

㈨ 如何在c语言中计算字符串长度

C语言的字符串是由来字符数组形式保源存的,并约定''(ascii码值为0)作为字符串结束符。其长度为从字符串开始,到''结束,所有字符的个数,不包括''本身。

要获得字符串长度,有两种方法可以使用,使用库函数strlen()。strlen声明在string.h中,原型为int strlen(char *str);功能为求str的长度,并返回。对于字符串str, 可以用代码求长度。当str[len]为0时,退出循环,退出后的len值就是str的长度。

拓展资料:使用strlen函数,包含在头文件string.h里,功能就是计算字符串s的(unsigned int型)不包括''在内的长度。

㈩ C语言如何获知字符串数组长度

你好
应该这样理解
首先,就c语言来讲,字符串的实现一般使用数组,例如
char
s[]
=
"hello";
hello里面有五个字符
分别是
h
e
l
l
o
由于c语言规定在存放字符串的数组里要以字符串结束符来结束
也就是‘\0’
所以上面定义中的数组s长度为字符总个数5
加上一个结束符‘\0’
也就是6
那么
字符串的长度就是5
但该数组s的长度就是6
至于通俗的数组长度,应该就指数组里面可存放元素的个数
例如char
s[100]
=
"hello";
虽然字符串s的长度为5
但这时数组长度就为100
希望能明白