创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
🔥c++系列专栏:C/C++零基础到精通 🔥给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ
c语言内容💖:
专栏:c语言之路重点知识整合
【c语言】全部知识点总结
目录
- 一、回顾C语言中的字符串
- 1.修改字符
- 2.比较字符串
- 二、C++中的字符串
- 1.修改字符
- 2.字符串比较
- 3.字符串拼接
- 4.字符串截取
- 5.字符串长度(大小)
- 6.字符串转换为const char*并返回
- 三、C语言和C++中字符串的各种区别
先来复习C语言中的字符串:
【c语言】字符串的基本概念 | 字符串存储原理
【c语言】字符串常用函数组件化封装
一、回顾C语言中的字符串
1.修改字符
定义一个char
类型指针p
指向字符串Tian
C语言中字符串是常量,不能通过指针修改字符串中的字符:
char* p = (char*)"Tian";
p[1] = 'q';
这段代码会在运行时出错(编译时不会):
再定义一个指针p2
指向字符串Xi
通过改变指针的指向可以改变输出的字符串:
char* p2 = (char*)"Xi";
p2 = (char*)"Studio";
将指针p2
的值更改为指向字符串字面值“Studio”
的第一个字符
p和p2在栈区被创建,由于字符串在程序刚开始运行时在常数区被创建,所以p、p2可以直接来指向Hello\0。
再定义一个字符数组arr,存放字符串TianXi
(字符数组与字符串的区别是 是否有'\0'
)
char arr[7] = "TianXi";
arr[1] = 'V';
cout << "arr:" << arr << endl;
通过对字符数组arr
的第二个字符修改,可以得到修改后的字符数组
如果直接使用数组名修改字符数组:
arr="123";
将会产生编译错误,不可以对数组分配新的字符串
数组名是地址常量,字符串是字符串常量,将一个字符串常量赋给另一个地址常量,会出现左值不可更改的错误
2.比较字符串
字符串比较是对两个或多个字符串进行逐个字符的比较判断是否相等
strcmp() 函数
根据两个字符串的第一个不同字符的 ASCII 码对比大小
返回 1 代表 大于关系 ; 返回 0代表等于关系;返回-1代表小于关系
【c语言】字符串比较知识点
通过库函数strcmp
函数进行字符串的比较:
if (strcmp(p, p2)==0)
{
cout << "p==p2" << endl;
}
else
{
cout << "p!=p2" << endl;
}
直接使用==
比较的是地址 不是字符串
if(p==p2)
二、C++中的字符串
C++中内置了字符串string类型
需要包含字符串的头文件#include <string>
再打开标准命名空间using namespace std;
然后就可以直接使用string
定义字符串:
#include <iostream>
#include <string> //包含字符串的头文件
using namespace std; //打开标准命名空间
int main()
{
string str = "ztx";
string str1 = "zox";
return 0;
}
1.修改字符
直接通过str1[1] = 't';
就可以修改字符串中的某个字符
2.字符串比较
直接通过字符串的名字就可以进行对字符串的比较:
if (str == str1)
{
cout << "str==str1" << endl;
}
else
{
cout << "str!=str1" << endl;
}
3.字符串拼接
在C++中,不需要再使用C语言中的标准库函数strcat
,直接使用+
号就可以完成字符串拼接的操作
string str3 = "TianXi";
str3=str3+" Studio"; //str3 += " Studio";
cout << str3 << endl;
4.字符串截取
需要使用到.substr
函数
string str4 = str3.substr(2, 5);
cout << str4 << endl;
5.字符串长度(大小)
使用.length()
和.size()
函数
string str3 = "TianXi";
cout << endl << "str3的长度:" << str3.length() << " " << str3.size() << endl;
6.字符串转换为const char*并返回
使用.c_str
函数
str3=str3.c_str();
cout << str3 << endl;
const常量不可修改: 产生不可修改的左值错误
三、C语言和C++中字符串的各种区别
C语言:字符串是以字符数组的形式存储的,以'\0'
结尾
字符串比较通常使用strcmp
函数,字符串拼接使用strcat
函数,字符串长度计算使用strlen
函数
C++:字符串类型被视为对象,并且C++STL库中提供了string类
来实现字符串操作。与C语言不同,在C++中使用string类时可以使用运算符重载函数来完成字符串操作
例如使用+
运算符进行字符串连接,使用==
运算符比较两个字符串是否相等,并使用size()
函数获取字符串的长度
大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。 |
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!如果本文哪里有错误的地方还请大家多多指出(●'◡'●) |