
C++中获得字符数组的长度可以使用strlen函数,如计算字符数组a的长度的语句是i=strlen(a)。
函数原型:extern unsigned int strlen(char s);
头文件:#include <stringh>;
功能:计算给定字符串的(unsigned int型)长度,不包括'\0'在内;
参数说明:要计算长度的字符串数组的首地址;
返回值说明:要计算字符串的长度,不包括'\0'。
c 中的一些转义字符,你应该了解的啊:
\n \t \v \b \r \f \' \" \\
分别是换行、水平制表符、垂直制表符、退格符、回车符、换页、单引号、双引号、\
(貌似还有其他的、)
所以c[] 中前三个分别是 \t \v \\
c 中字符的另一个表达方法 \ooo 或是 \xhh (o是八进制数字,h是十六进制数字)
比如'\3' 就是ASCII码为3的字符 , '\x10' 是ASCII吗是16的字符;
c[] 中的第四个字符 '\0' , 这是c中默认的字符串结束标志,也就是,遇到'\0', 就认为字符串结束了、所以,你数字符的时候,只能数3个,就是这情况、
对了,数组的长度是3,这就不对了啊,数组的长度是10!!字符串的长度是3,
数组中的字符分别是:
\t \v \\ \0 w i l l \n \0
(数字符的时候,遇到\0 就认为结束了、)
还有疑问不?、
1 、定义数组,要给定其长度,也可以用Type a[ ] = {……} 的方式。
在对数组进行 *** 作时,可能需要计算数组长度,方法是:sizeof(数组名)/sizeof(元素类型)
2、指针指向的字符数组长度的获取方法,不能用sizeof,因为用sizeof(指针),得到指针长度为4
应该用strlen()函数。
#include <iostreamh>#include <stringh>
int num(char ptr)
{
int bb = strlen(ptr);
return bb;
}
int main()
{
char p= new char[100];
p = "string";
int b = num(p);
cout<<b<<endl;
return 0;
}
如果你只是要数组的长度的话,那么任意的数组都有length属性,直接访问就可以了。如果你想要字符串数组中所有字符的长度,就得循环了。
string[]
a
=
{"111","22","3333","44444"};
int
rs=0;
for(
int
i=0
;
i<alength
;
i++
){
rs+=a[i]length();
}
//
rs为字符数组中所有字符串的长度之和。
CString 在Unicode环境下是款字节 比如123456 存的时候存为 1 \0 2 \0 3 \0 4 \0 所以strlen得到长度是从1开始 到'\0'结束 长度为1
解决方法为
CString str =_T("123456");
WCHAR p;
p=(WCHAR )strGetBuffer();
strReleaseBuffer();
int i =wcslen(p);
如果要转换为char 需要转码
//计算字符串数组有多少个非空且字符串长度大于0的元素即可。
char a[100]={"111","222","3"};
int count = 0;
for(i=0;i<100;i++)
{
//按编译器逻辑,第一条件为假就不会计算第二条件
if((a[i] != 0 )&&(strlen(a[i]>0)))
count++;
}
//count即为所求
printf("There are %d string in a \n",count);
在C语言中,字符数组的长度需要在定义时指定。由于"getchar"是一个包含6个字符的字符串常量,因此定义一个包含这个字符串的字符数组,可以这样写:
char b[] = "getchar";
在这种情况下,编译器会自动计算出字符数组的长度,并在末尾添加一个空字符('\0')作为字符串的结束符。因此,b数组的长度是7(包括一个空字符),而不是6。
以上就是关于c++ 如何获得字符数组长度全部的内容,包括:c++ 如何获得字符数组长度、char c[]="\t\v\\\0will\n"; 使用strlen(c)函数,得到的结果是该数组长度为 3;求解时!!!、如何得到指针指向的数组的长度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)