更新时间:2020-11-05 17:37:35 来源:极悦 浏览1465次
字符串长度就是这个字符串所包含字符的个数,但是这个长度是不包含 NUL 字符的。字符串长度通常是指字符串中包含字符的数目,但有的时候人们需要的是字符串所占字节的数目。事实上,求解字符串长度的方法不是单一的,而是灵活多变的。
下面我们先来看一下C++中关于字符串的定义:
#include
#include
int main()
{
char str1[] = "Hello World!";
printf("%d\n",strlen(str1));
return 0;
}
/* output:
* 12
*/
常见的获取字符串长度的方法包括如下几种。
1.strlen()
这个测字符数组长度,需要头文件 #include
#include
#include
using namespace std;
main ()
{
char c[100005];
cin >> c;
int len = strlen(c);
cout << len << endl;
}
2.sizeof()
测所占内存大小(就是在计算机中占几个字节)
#include
#include
using namespace std;
main ()
{
char c[100005];
cin >> c;
cout << "数组长度为" << endl;
int len = strlen(c);
cout << len << endl;
cout << "c数组占字节长度为" << endl;
int Csize = sizeof(c);
cout << Csize << endl;
}
3.s.length()
用来测 string 定义的类的字符串长度
#include
#include
#include
using namespace std;
main ()
{
string s;
cin >> s;
int len = s.length();
cout << len << endl;
int Ssize = sizeof(s);
cout << Ssize << endl;
}
4.s.size()
用来测 string 定义的类的字符串长度和s.length()一样没区别
#include
#include
#include
using namespace std;
main ()
{
string s;
cin >> s;
int len = s.size(); //长度
cout << len << endl;
int Ssize = sizeof(s); //所占空间的大小
cout << Ssize << endl;
}
编写如下程序,体验获取字符串长度的各种方法。
#include "stdafx.h"
#include "string"
#include "comutil.h"
#pragma comment( lib, "comsuppw.lib" )
using namespace std;
int main()
{
char s1[] = "中文ABC";
wchar_t s2[] = L"中文ABC";
//使用sizeof获取字符串长度
printf("sizeof s1: %d\r\n", sizeof(s1));
printf("sizeof s2: %d\r\n", sizeof(s2));
//使用strlen获取字符串长度
printf("strlen(s1): %d\r\n", strlen(s1));
printf("wcslen(s2): %d\r\n", wcslen(s2));
//使用CString::GetLength()获取字符串长度
CStringA sa = s1;
CStringW sw = s2;
printf("sa.GetLength(): %d\r\n", sa.GetLength());
printf("sw.GetLength(): %d\r\n", sw.GetLength());
//使用string::size()获取字符串长度
string ss1 = s1;
wstring ss2 = s2;
printf("ss1.size(): %d\r\n", ss1.size());
printf("ss2.size(): %d\r\n", ss2.size());
//使用_bstr_t::length()获取字符串长度
_bstr_t bs1(s1);
_bstr_t bs2(s2);
printf("bs1.length(): %d\r\n", bs1.length());
printf("bs2.length(): %d\r\n", bs2.length());
return 0;
}
输出结果:
sizeof s1: 8
sizeof s2: 12
strlen(s1): 7
wcslen(s2): 5
sa.GetLength(): 7
sw.GetLength(): 5
ss1.size(): 7
ss2.size(): 5
bs1.length(): 5
bs2.length(): 5
总之,4种求字符串长度的方式分别为strlen() ,sizeof() ,s.length() ,s.size()以上内容详细的介绍了求解字符串长度的4种方法以及实例说明,如果单靠个别例子无法理解如何求字符串长度,可以观看本站的Java基础教程,里面还有更多的详细的实例讲解,帮助你加深对字符串长度的理解。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习