历史的遗留问题
在C语言中没有真正意义上的字符串,为了表达字符串这个概念利用字符数组来模拟字符串。
C语言不支持真正意义上的字符串 (C++也不支持)
C语言用字符数组和一组函数实现字符串操作 (C++中同样支持)
C语言不支持自定义类型,因此无法获得字符串类型。(C++中支持自定义类型)
解决方案:
从C到C++的进化过程引入了自定义类型
在C++中可以通过类完成字符串类型的定义
问题:
C++中的原生类型系统是否包含字符串类型?

标准库中的字符串类
C++语言直接支持C语言的所有概念
C++语言中没有原生的字符串类型

C++标准库提供了string类型
-string直接支持字符串连接(通过重载+这个操作符)
-string直接支持字符串的大小比较 (通过重载大小操作符实现)
-string直接支持子串查找和提取
-string直接支持字符串的插入和替换

字符串类的使用

#include <iostream>
#include <string> using namespace std; void string_sort(string a[], int len)
{
for(int i=; 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=; i<len; i++)
{
ret += a[i] + "; ";
} return ret;
} int main()
{
string sa[] =
{
"Hello World",
"D.T.Software",
"C#",
"Java",
"C++",
"Python",
"TypeScript"
}; string_sort(sa, ); for(int i=; i<; i++)
{
cout << sa[i] << endl;
} cout << endl; cout << string_add(sa, ) << endl; return ;
}

最新文章

  1. app字体被放大效果发虚
  2. SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别
  3. IOS RunLoop 常驻线程的实现
  4. 《JavaScript高级程序设计》 - 读书笔记 - 第5章 引用类型
  5. 突破python缺陷,实现几种自定义线程池 以及进程、线程、协程的介绍
  6. 注解的基本盘点 -- 《Java编程思想》
  7. 习题-任务2初始ASP.NET MVC项目开发
  8. WorldWind源码剖析系列:BMNG类构造函数深入分析
  9. cf.VK CUP 2015.B.Mean Requests
  10. Linux后门入侵检测
  11. HDU 1176 免费馅饼(DP)
  12. 《C#并行编程高级教程》第3章 命令式任务并行 笔记
  13. 理解WebKit和Chromium: Android 4.4 上的Chromium WebView
  14. 使用 Nginx 内置 $http_user_agent 来区分( 电脑 pc、手机 mobile、平板 pad )端的内容访问
  15. 调参贝叶斯优化(BayesianOptimization)
  16. Hbase思维导图之逻辑结构
  17. ubuntu16.04配置anaconda环境
  18. 【python系列】python初识
  19. SQL基础日期函数
  20. IO流程及优化

热门文章

  1. Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)
  2. 最短路问题的三种算法&amp;模板
  3. hdu6492 暴力预处理 + 枚举
  4. Physically Based Shader Development for Unity 2017 Develop Custom Lighting Systems (Claudia Doppioslash 著)
  5. Redis系列1——概述
  6. VBA实战 - 一个简单的 httplib
  7. PDF文件添加二维码水印教程
  8. redis之GeoHash
  9. .NET Core on K8S快速入门课程--学习笔记
  10. NET Excel转换为集合对象