字符串数组长度,字符数组长度问题

char a[] = {'a','b','c'};
char b[] = "abc";
请问下数组a和数组b的长度我理解的是都为3,但是答案是b的长度大于a的长度,
不太明白后面那个是不是要算上\0呢,这个长度是要用strlen计算么

3个回答

任何字符串他都会在字符结尾自动添加上'\0'。因为计算机判定字符串的长度就是看这个'\0'的字符串,所以strlen也是这个原理。
前一楼的兄弟已经说的很明白了,但是要注意一点,因为你现在定义的是char b[],这种方式,这是计算机根据字符串自动计算长度,所以他会分配四个字节,
如果是自己定义数组的长度需要把'\0'加上,不然会有截断,所以应该定义:char b[4] = "abc"

字符串实际长度为4,有\0作为结尾标识,strlen的的值为3,不包括\0

对于字符而言,就是'a','b'等,一个字符的长度为1,
对于字符串而言,就是'abc'而言,因为所有的字符串在结尾都会自动加上‘\0’,所以数组b的长度应该是3+1=4.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
字符数组长度
我的一个函数返回值是string数组。怎样才能在调用时知道别人知道返回值的长度啊?rnrn函数定义:string[] fun()rnrn假设不知道任何内幕,调用时怎么做呢?
【c++】 字符数组长度问题
假设定义一个char p[]=""a\0bc\0def\n";rn cout<
字符数组长度的问题
我定义了一个char buf[10]用来存数据,但是有时可能没有20个数据,假如数据是16进制的“01 02 03 04 05” 数据发送到下位机会变成“01 02 03 04 05 cc cc cc cc cc",没存数据的元素就成cc了,有什么函数或方法可以使数组的长度变成已成数据的长度呢
关于字符数组长度的问题.......
#includern#includernvoid main()rnrn int i,len1,len2;rn char str[10],str1[10];rn printf("%d\t%d",strlen(str),strlen(str1)); //①rn printf("\n请输入字符串");rn gets(str);rn len1=strlen(str);rn for(i=0;i
数组长度
#include"stdio.h"rnvoid main()rnrn char a[2];rn gets(a);rn puts(a);rnrn为什么字符长度是3,但输入很长一串字符,却还能打印出来
数组长度?
string[] strArr=new string[5];rnstrArr[0]="a";rnstrArr[1]="b";rn那么这时strArr.Length的值是2还是5呢?谢谢
呵呵,小问题,字符数组长度.
比如:rnchar *c=new char [20];rnstrcpy(c,"abcdef")rn这样,如果strlen(c)将得到6rnsizeof(c)得到4rnrn我想得到分配时的长度,就是20.怎么做?
数组长度。
练手的时候遇到这么个问题,觉得挺简单的,但就是弄不出来rn//输入一个已经按升序排序过的数组和一个数字sum,在数组中查找两个数,使得它们的和正好是输入的那个数字sumrn#include rn#include rn#include rnusing namespace std;rnrnvoid find_two_numbers(int array[], int sum)rnrn int i = 0;rn int j = sizeof(array); //问题在这rn while(i < j)rn rn if(array[i] + array[j] < sum)rn i++;rn else if(array[i] + array[j] > sum)rn j--;rn elsern rn cout << "两个数为:"<< array[i] << " " <
[紧急]字符数组长度???
string[] splitc_f_name=c_f_name.Split(char.Parse("||||"));rnrn怎么样得到splitc_f_name的长度???
计算字符数组长度
[code=c]#includernusing namespace std;rnint count(char p[])rnint i=0;rn while(p[i]!='\0')rn i++;rn return i-1;rnrnrnvoid main()rnrn char cc[]='a','a','a','a','a','a','a','a','a','a','e';rn int num=count(cc);rn cout<<"数组长度"<
数组长度问题
#includern#includernrnusing namespace std;rnint main()rnrn char string[10];rn char* str1 = "mynameis11111";rn strcpy(string,str1);rn cout<
数组长度的问题
CString str[3]="a","b","c"rnrn用sizeof(str) / sizeof( str[0] )求出来的话是3.rnrn但是用这种方法的话:rnCString *pStr = str;rn用sizeof(*pStr)/sizeof(*pStr[0])求出来的话,是4.rnrn今天发现的,不知道为什么?rn
获得字符串或数组长度问题
char *bmpdata; 全局变量rnrnvoid CFileView::OnRfile() rn rn//function 2rnCFile file("333.bmp",CFile::modeRead|CFile::typeBinary);rnlen = file.GetLength();rnbmpdata = new char[len+1];rnbmpdata[len] = 0;rn//int Length = strlen(bmpdata); 如在这里获取的话 是正常的为27653rnfile.Read(bmpdata,len);rnfile.Close();rnrnrnrnvoid CFileView::OnFile() rnrnrnFileWrite(bmpdata);rnrnrnrnvoid CFileView::FileWrite(char *data)rnrn rn //int Length = strlen(bmpdata); 如在这里获取的话同样是5 rn int Length = strlen(data); // 跟踪这里的Length的值为5 没有达到目的rnCFile file("222.bmp",CFile::modeCreate|CFile::modeWrite|CFile::typeBinary);rnfile.Write(data, Length);rnfile.Close();rnrnrnrn如定义bmpdata 为 unsigned char* 显示错误:rnstrlen : cannot convert parameter 1 from 'unsigned char *' to 'const char *'rn应该怎么改下rn
字符串数组长度计算函数
char myName[30] = {0}; ifs.getline(myName, 30, '\n'); //读取某文件内短文本的一行 //假设myName = "allyli" int length = sizeof(myName); //结果为30 int length_tr = strlen(MyName); //结果为6
字符串数组长度怎么弄呢?
sizeof 败了,取出来是4,循环又没尽头。。rnrnrnLPCTSTR s_b2JointTypes[] = rn _T("e_unknownJoint"),rn _T("e_revoluteJoint"),rn _T("e_prismaticJoint"),rn _T("e_distanceJoint"),rn _T("e_pulleyJoint"),rn _T("e_mouseJoint"),rn _T("e_gearJoint"),rn _T("e_wheelJoint"),rn _T("e_weldJoint"),rn _T("e_frictionJoint"),rn _T("e_ropeJoint"),rn;rnrnint getLength(LPCTSTR stringArray[]) rn...rnrn return ?rn
数组长度的问题!
如何取得一个byte数组内的内容的长度,而不是声明时的长度?rnrn我用ubound取得的是声明时的长度。
几种获取字符串和字符数组长度的函数的区别
几种获取字符串和字符数组长度的函数的区别 sizeof()、 length()、 strlen()、 size() strlen(str)和str.length()和str.size()都可以用来求字符串的长度 str.length()和str.size()是用于求string类对象的成员函数 strlen(str) 是用于求字符串数组的长度,其参数是char* 其他的参考博客:h...
字符数组长度引起的奇怪的错误
[code=C/C++]rnchar output[16];rnfun(output);rn[/code]rn执行出错rn[code=C/C++]rnchar output[32];rnfun(output);rn[/code]rn执行没问题rnrn我的fun函数是空的 一句代码都没有rn两段代码唯一的区别是output的长度 一个是16 一个是32位rnchar传进去之后 就是个指针 应该都一样的吧rnrn怎么会出现这样的错误 以前没有见过rnrn会不会是跟函数调用的时候堆栈有关系? 怎么会出现这样的错误? 请高手指点一下 rn
php中数组长度的获取,JavaScript数组长度的获取
php中数组长度的获取 在php中获取数组长度方法很简单,php为我们提供了两个函数可以计算一维数组长度,如count,sizeof都可以直接统计数组长度哦,下面我们来看几个实例吧。 php如何获取数组的长度,使用php函数count(),或是sizeof() 例如: 代码如下: $arr = Array('0','1','2','3','4'); echo count($arr)
js数组长度
js数组长度 &amp;lt;script&amp;gt; var a = [&quot;js&quot;, &quot;java&quot;, &quot;c&quot;, &quot;c++&quot;, &quot;php&quot;, &quot;python&quot;]; var b = a.length; document.write(b); &amp;lt;/script&amp;gt; 输出结果是:6
数组长度和数组排序
请问:rn如何得知一个数组的长度?rn一个数组如何排序,从大到小或从小到大???
VB 数组长度
在VB中求得rnDim Buffer As Variant rnBuffer = MSComm1.Inputrn这时用什么函数返回 Buffer 有多少位
数组长度的增减
题目:.假定用一维数组a[0:size-1]来存储一组元素。如果有n个元素,可以把它们存储在a[0],...,a[n-1]中。当n超过size时,数组将不足以存储所有元素,必须分配一个更大的数组。类似地,如果元素的数目比size小很多,我们有可能减少数组的大小,以便释放出多余的空间为其他地方所用。试编写一个模板函数ChangeSize1D把数组的大小从size变成ToSize。函数首先应该分配一个
计算数组长度
计算一个数组的长度: 按数组占用内存地址计算。 源代码: U16 strlen(const char *s) { /* find length of s[] */ const char *sc; for (sc = s; *sc != '\0'; ++sc); return (sc - s); }
求字符串数组长度的一种方法
#include &amp;lt;stdio.h&amp;gt; struct string{ char *st; }; struct string test[] = { {&quot;555555555&quot;},{&quot;111111&quot;},{&quot;0000&quot;}}; int main() { printf(&quot;%d\n&quot;,sizeof(test)/sizeof(struct string)); ...
sort(数组名,数组长度)与unique(数组名,数组长度)-数组名
//组合使用排序和查重。 //先排序再查重防止查完之后又将重复的元素排进来(强制性单纯使用unique没用)。 sort(a,a+n); n=unique(a,a+n)-a;//实际将重复的元素放在最后,返回的值是除去重复的数组长度。 ...
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法