C++中几种字符串表示方法
时间:2019-11-27
本文章向大家介绍C++中几种字符串表示方法,主要包括C++中几种字符串表示方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
最近学习C++时,被几种字符串搞的有点乱,这里记录一下。
c++中有两种风格字符串,分别是:
- C++风格字符串
- C风格字符串
它们各自的声明方式如下:
void main(){ string a = "hello"; //C++风格 char *b = "hello"; //C风格 char c[] = "hello"; //C风格 }
C++风格字符串
string是c++标准库定义的类型。string支持下标操作,可以修改string中的一部分。同时string可以看作存储char的vector容器的特化,所以string支持一般的容器操作。
string a="hello“; a[3] = 's'; //支持下标操作 //通过迭代器输出首尾元素 cout<<*a.begin(); auto e = a.end(); cout <<*(--e);
C风格字符串
C风格字符串不是一种类型,而是一种约定俗成的写法。即字符串放在字符数组中并以空字符结束(’\0‘)。
char ca1[]={'C', '+', '+'}; //没有以’\0'结尾,非c风格字符串 char ca2[]={'C', '+', '+', '\0'}; // 显式添加'\0' char ca3[]="C++"; // 编译器会自动在末尾添加空字符 char *cp="C++"; // 编译器会自动在末尾添加空字符
其中,使用字符数组时,只能在定义的时候初始化,同时,对于字符指针型的字符串(char *str),字符数组可以直接赋值给字符指针型字符串,但反之就不行。
char[10] str_1 = "hello"; //正确 char[10] str_2;
char* str_3 = "world"; str_2 = "hello" //错误,此时的str_2是一个数组名,不能这样赋值 str[0] = 'h'; //正确
str_3 = str_1; //正确
str_1 = str_3; //错误
两种风格字符串间的转换
在编程程序的时候,尽量使用string,但有很多时候修改老代码的时候不得已会用到C风格字符串,所以需要用到两种风格间字符串的转换。
1.C风格字符串转换为C++风格字符串
string类能够自动将C风格字符串转化为C++风格字符串,也就是说C风格字符串能够直接赋值给string。
string str_1; char * str_2 = "hello"; char[] str_3 = "world“; str_1 = str_2; //正确 str_1 = str_3; //正确
2.C++风格字符串转换为C风格字符串
这种转换需要用到函数c_str,这个函数返回的是一个const *char类型的值。
string str_1 = "hello"; char *str_2 = str_1.c_str(); //错误,c_str()返回的是const char* const char* str_3 = str_1.c_str() ; //正确
原文地址:https://www.cnblogs.com/honernan/p/11942940.html
- 《JavaScript高级程序设计》学习笔记(4)——引用类型
- iOS项目——基本框架搭建
- iOS学习——键盘弹出遮挡输入框问题解决方案
- iOS项目——项目开发环境搭建
- im协议设计选型(上)
- iOS学习——UIAlertController详解
- iOS学习——获取iOS设备的各种信息
- iOS学习——属性引用self.xx与_xx的区别
- iOS学习——iOS 整体框架及类继承框架图
- iOS学习—— UINavigationController的返回按钮与侧滑返回手势的研究
- iOS学习——iOS常用的存储方式
- iOS学习——内存泄漏检查及原因分析
- IOS学习——iphone X的适配
- 使用PowerShell自动部署ASP.NetCore程序到IIS
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法