C++中的字符串类
1 C++中的字符串类简介
1.1 C语⾔中的遗留问题
历史遗留问题:
C语⾔不⽀持真正意义上的字符串。
C语⾔⽤字符数组和⼀组函数实现字符串操作。
C语⾔不⽀持⾃定义类型,因此⽆法获得字符串类型。
解决⽅案:
从C到C++的进化过程中引⼊了⾃定义类型。
在C++中可以通过类完成字符串类型的定义。
1.2 C++中的字符串类
由于C++语⾔直接⽀持C语⾔的所有概念,所以C++中没有原⽣的字符串概念。
标准库中的字符串类:
C++标准库提供了string类型
string直接⽀持字符串连接
string直接⽀持字符串⼤⼩的⽐较
string直接⽀持字串查和提取
string直接⽀持字符串的插⼊和替换
string类最⼤限度的考虑了C字符串的兼容性,可以按照使⽤C字符串的⽅式使⽤string对象。
字符串类的使⽤:
#include<iostream>
#include<string>c++中string的用法
using namespace std;
void string_sort(string a[],int len)
{
for(int i=0; i<len; i++)
{
for(int j=i; j<len; j++)
{
if( a[i]> a[j])
{
swap(a[i], a[j]);
}
}
}
}
string string_add(string a[],int len)
{
string ret ="";
for(int i=0; i<len; i++)
{
ret += a[i]+"; ";
}
return ret;
}
int main()
{
string sa[7]=
{
"Hello World",
"D.T.Software",
"C#",
"Java",
"C++",
"Python",
"TypeScript"
};
string_sort(sa,7);
for(int i=0; i<7; i++)
{
cout << sa[i]<< endl;
}
cout << endl;
cout <<string_add(sa,7)<< endl;
return0;
}
2 C++中string类错误使⽤⽰例
C++中要么⽤string类,要么⽤C语⾔⽅式的字符串,不要混⽤,否则很容易出bug。
2.1 m_cstr的问题
下⾯的代码输出什么?为什么?
两次均输出"12345"。
问题分析:
string类通过⼀个数据空间保存字符数据。
2.2 m_length的问题
下⾯的程序输出什么?为什么?
输出为空。
问题分析:
string类通过⼀个成员变量保存当前字符串的长度。C++开发时尽量避免C语⾔中管⽤的变成思想。
参考资料:
1.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论