c语言字符数组长度
㈠ 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语言的抄字符串是由字符数组形式袭保存的,并约定'