第 33课 C++中的字符串(上)
历史的遗留问题
在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 ;
}
第 33课 C++中的字符串(上)的更多相关文章
- 第33课 C++中的字符串
1. 历史遗留问题及解决方案 (1)历史遗留问题 ①C语言不支持真正意义上的字符串------c语言是用字符数组实现字符串 ②C语言用字符数组和一组函数模拟字符串操作 ③C语言不支持自定义类型,因此无 ...
- 第33课 C++中的字符串类
在C语言中学习字符串时,我们使用的是字符数组的概念. C语言中没有真正意义的字符串.为了表达字符串的概念,我们使用了字符数组来模拟字符串. 在应用程序开发中,我们需要大量的处理字符串,如果还用C语言中 ...
- 第 33课 C++中的字符串(下)
字符串与数字转换-标准库中提供了相关的类对字符串和数字进行转换-字符串流类(sstream)用于string的转换.<sstream>-相关头文件.istringstream-字符串输入流 ...
- 第11课 Qt中的字符串类
1. 历史遗留问题和解决方案 (1)历史遗留问题 ①C语言不支持真正意义上的字符串 ②C语言用字符数组和一组函数实现字符串操作 ③C语言不支持自定义类型,因此无法获得字符串类型 (2)解决方案 ①从C ...
- 在文件夹中 的指定类型文件中 查找字符串(CodeBlocks+GCC编译,控制台程序,仅能在Windows上运行)
说明: 程序使用 io.h 中的 _findfirst 和 _findnext 函数遍历文件夹,故而程序只能在 Windows 下使用. 程序遍历当前文件夹,对其中的文件夹执行递归遍历.同时检查遍历到 ...
- SQL点滴33—SQL中的字符串操作
原文:SQL点滴33-SQL中的字符串操作 计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写lower() ...
- linux上查找文件存放地点和文件中查找字符串方法
一.查找文件存放地点 1.locate 语法:locate <filename> locate命令实际是"find -name"的另一种写法,但是查找方式跟find不同 ...
- 第17课 - make 中的路径搜索(上)
第17课 - make 中的路径搜索(上) 1. 问题 在以往的 make 学习中,我们使用到的 .c 文件和 .h 文件都与 makefile 处在同一个路径.在实际的工程项目中,所有的源文件和头文 ...
- 切记ajax中要带上AntiForgeryToken防止CSRF攻击
在程序项目中经常看到ajax post数据到服务器没有加上防伪标记,导致CSRF被攻击,下面小编通过本篇文章给大家介绍ajax中要带上AntiForgeryToken防止CSRF攻击,感兴趣的朋友一起 ...
随机推荐
- 一,java框架学习
一,java框架学习 Hibernate概述Hibernate是一个开放源代码的ORM(对象关系映射)框架,对jdbc进行了轻量级的封装,是的java开发人员可以使用面向对象编程思想操作数据库,简化操 ...
- day76_10_23自定义签发token,其他drf组件
一.签发token的原理 当认证类authentication_classes是JSONWebTokenAuthentication时,其父类JSONWebTokenAPIView只有post 方法, ...
- 【day07】php
一.数组(Array) 1.数组:一组数据的集合 2.数组的分类: 索引数组:键名称是整数,编号从0开始 关联数组:键名称是字符串 3.定义一维数组 ...
- VBS实现UTC时间和本地时间互转
本地时间转UTC时间 dim SWDT, datetime, utcTime Set SWDT = CreateObject("WbemScripting.SWbemDateTime&quo ...
- Python连载19-装饰器
一.检视一个函数相同的另一种方法 利用属性:函数._name def hello(): print("我是一个测试程序") f = hello print(f.__name__) ...
- 关于使用IDEA,使用Maven打包项目
关于使用IDEA,使用Maven打包项目 在近期的一个接口项目中,使用的是SpringBoot + Maven的配置, 由于使用IDEA不久,不太熟悉使用Maven进行项目打包.记录一下. 由于使用的 ...
- RabbitMQ如何保证消息99.99%被发送成功?
1. 本篇概要 RabbitMQ针对这个问题,提供了以下几个机制来解决: 生产者确认 持久化 手动Ack 本篇博客我们先讲解下生产者确认机制,剩余的机制后续单独写博客进行讲解. 2. 生产者确认 要想 ...
- 从零到一手写基于Redis的分布式锁框架
1.分布式锁缘由 学习编程初期,我们做的诸如教务系统.成绩管理系统大多是单机架构,单机架构在处理并发的问题上一般是依赖于JDK内置的并发编程类库,如synchronize关键字.Lock类等.随着业务 ...
- 【MySQL】对数据库和表的增删改查
数据库的基本概念 数据库的英文单词: DataBase 简称 : DB 什么是数据库? 用于存储和管理数据的仓库. 数据库的特点: 持久化存储数据的.其实数据库就是一个文件系统 方便存储和管理数据 使 ...
- 读书会荐书 - 关于Ada Lovelacer的书
今天很感谢Weny组织了这期读书会, 我受益良多. 会上我推荐了<中的精神>, 但是会后想起有更好的书. 就是关于Ada Lovelace的书. 先简单介绍一下Ada Lovelacer. ...