c语言中显示字符串数组的长度(数组实现的字符串数组和指针实现的字符串数组) 1、 #include <stdio.h>intmain(void) {charx[][128] = {"aaa","bb","cccccc","d","eee"};char*y[] = {"11111","22222222","3333"}; printf("length of x: %u\n",sizeof(x)/sizeof(x[0])); printf("len...
2、利用指针 #include <stdio.h>intlen2(char*x)//利用指针作为形参,指针x指向传入的数组的第一个元素,其行为和数组str一样,x++指针依次向后推移,知道*x=0, 测试循环体执行了字符个数的次数{intlen =0;while(*x++)//指针的推移控制循环变量,直到*x为null,len++;//循环体记录字符个数returnlen; }int...
在C语言中,可以通过库函数strlen来计算字符串的长度,也可以通过循环计数来求取字符串长度。函数原型:unsigned int strlen(char *str);功 能:统计字符串str中字符的个数,不包含'\0'返 回 值:返回字符个数 具体实现方法可以参考如下程序段:1、用strlen函数实现 char str[20];int len; ...
一般意义上字符串数组的长度是不包括'\0'的。如char a[]=“China”;这个长度就等于5。其实在系统中a占了6个位置,最后一个放了一个'\0'。但是你如果你写char a[]={'C','h','i','n','a'};这个长度也是5,但系统不会在最后放'\0',所以它在系统中只占5个位置。应该说,这个a只能...
1楼正解,你在初始化时给数组a赋了3个值,所以其实a的类型应该是 char a[3],数组长度为3,。而字符串就不一样了,他必须以‘\0’结尾,你的 ‘a’ ‘b’ ‘c’存储在一个连续的地址上,字符串的长度是从‘a’的地址开始一直计数,当读到‘\0’时结束,虽然你没有用到‘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型...
因为你输入的本来就超过了 C语言中的字符串是不会给你做边界检查的,说白了char a[3] 这种只是说“假设”a字符串不超过2个字符(最后一个要给\0) , 但实际上你即使超限了,他也不会管你,但他会影响到(例如覆盖)其他的数据,也有可能出现运行时错误 ...
只要内存足够,数组不限制的。字符串变量的话,各语言中一般都是1G字节(2的30次方-1)的限制。
小程序,出错了你也不知道!!!大程序出错就很明显了。超长以后,内存还是存在的,只是那里并不是数组a[]的内存;也就是说,可能修改了别的变量的内存。这是逻辑错误,不是编译错误;也不是系统错误;所以不报错也是可能的。