数组长度字符串长度,数组中字符串长度
数组长度和字符串长度
当使用字符串数组保存字符串时,往往数组是固定长度的,假定数组定义长度是n,意思是最多可保存n个char类型数据;字符串特点是最后以一个0结束,这就意味着前面定义的长度是n个元素的数组在存放字符串时最多存放n-1个字符,加上结尾的0长度是n;当然存放字符串长度小于n-1的自然没有问题,只要搞明白:为存放字符串,在除了存储字符串中的字符以外,还要在末尾多用一个单元存放字符串结束符0。
字符数组长度和字符串长度
1.字符数组长度和字符串长度
输出内容如下,因为char数组会在末尾添加一个 '\0' ,串中字符的个数成为 串的长度
2.将字符串打印出来,如果是ilen,此时是数组长度,会在末尾多输出一个空格
字符串拼接
3.strcat函数原型a,b字符串拼接,然后存储到a中
字符串长度 数组长度具体区分
你好!!!
我们还是先来看看一个例子:
代码:
#include iostream.h
#includestring.h
int main()
{
char a[]={'a','b','c'};
cout"字符串a:"aendl;
cout"数组的大小:"sizeof(a)endl;
cout"数组的大小:"strlen(a)endl;
coutendl;
char b[5]={ 'a','b','c'};
cout"字符串b:"bendl;
cout"数组的大小:"sizeof(b)endl;
cout"数组的大小:"strlen(b)endl;
return 0;
}
结果:
字符串a:abc汤?
数组的大小:3
数组的大小:7
字符串b:abc
数组的大小:5
数组的大小:3
Press any key to continue
首先要知道:sizeof()求的是在内存中的分配的长度(暂且这样讲)
strlen()是求内存中实际已经使用的空间,也就是说虽然分配了很多空间,但是好多空间都没有用到,都是空的。
还要知道字符串的结束标志是‘\0’即空字符!!!
char a[]={ ‘a’,’b’,’c’};表示给数组的第一,第二,第三个字节的元素是a,b,c,而此时的数组的大小不是知道的,也就是系统已经在栈里至少分配了3个字节大的内存,要是数组在栈里是连续存放的,因此数组的后面还有多少个字节谁也不知道,要是此时输出字符串,输出a,b,c后由于赋值的后没有赋结束标志(一个字符一个字符的赋值系统不会自动的在最后添加结束标志),所以数组会一直向后面移动,知道遇见结束标志,此题可以看出字符串a:abc汤?
a,b,c,空格 中5个字节,还有一个汉字是2个字节所以数组的大小是7个字节,但是实际赋值的字符只有3个字节!!
而数组b:char b[5]={ 'a','b','c'};数组的大小是5个字节,实际只用到了3个字节,至于后面的字节则是‘\0’输入输出都是正确的。
不理解我们再联系!!!
字符串数组的长度
是14个,因为\n算一个换行字符,\t是一个退格字符,两个\\都是一个反斜杠字符,最后自动添加一个结束字符。你可以单步调试,跟踪一下s数组中的内容就知道了。
楼主问的是字符串数组的长度,自然就要有结束符'\0'了,要是说字符串的长度那是没有的。所以对于楼主的答案,应该是有'\0'的。
数组长度与字符串长度有什么区别?
数组长度与字符串长度区别:结束标志不同、特点不同
1、结束标志不同
字符串:必须以'\0'结尾;// ?‘ \0 ’?的意义是“字符串结束符”。
字符数组:可以包含多个'\0',但是如果当做字符串处理,则实际有效字符串为第一个'\0'的签名的字符串,如果当做字符数组处理,可以处理字符数组的任何一个字符,所有的字符都可以是'\0'。
2、特点不同
字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“b”,s[9]="j"。
而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
字符数组是指用来存放字符数据的数组。其定义的一般形式为: char 数组名[数据长度] 。字符数组用于存放字符或字符串,字符数组中的一个元素存放一个字符,它在内存中占用一个字节。C语言中没有字符串类型,字符串是存放在字符型数组中的。
扩展资料:
字符数组的初始化:
字符数组的初始化与数值型数组初始化没有本质区别。但它除了可以逐个给数组元素赋予字符外,也可以直接用字符串对其初始化。
用字符常量逐个初始化数组。例如:char a[8]={'i','l','o','v','e','y','o','u'};把8个字符依次分别赋给c[0]~c[7]这8个元素。
参考资料来源:
百度百科-字符数组
百度百科-字符串
数组长度和字符串长度的区别,最好是可以举个例子。谢谢各位大神
比如char a[10],里面存储字符串“string”,那么数组长度为10,字符串长度为7