c++知识点汇总--字符串

字符串–char
—是以空字符结尾的一系列字符;

声明和初始化:

//1
char arr[] = {'H', 'e', 'l', 'l', 'o', '\0'};
//2
//char *arr = "hello";//const char* 不能赋值给char*
const char *arr = "hello";
char arr[] = "hello";//6
//相比之下,方式1需要手动在末尾加空字符;方式2会自动在末尾补空字符;

相关操作函数:

函数作用
strcpy(s1,s2)复制字符串 s2 到字符串 s1
strcat(s1,s2)将字符串 s2 连接字符串 s1 的末尾
strlen(s1)返回字符串 s1 的长度
strcmp(s1,s2)返回s1与s2的比较结果
strchr(s1,c2)返回一个指针,指向字符串s1中字符c2相关操作函数的第一次出现的位置
strstr(s1,s2)返回一个指针,指向字符串s1中s2的第一次出现的位置

string类
—必须在头文件中包含string;使用时std::string,或者using namespace std;

//声明和初始化:
string s1;
string s2(s1);
string s3("hello");
string s4 = "hello";
string s5(n,'h');
//操作函数
string s = "hello";
s.empty();//判断s是否为空?
s.size();//返回s的大小;
s[2];
string s6 = s1+s2;
s1>s2; //< > <= >= ==

详细介绍string
—本质是类,封装了许多方法:

构造函数:

string();
string(const char *s);
string(const string &str);
string(int n,char c);

赋值操作:

string& operator=(const char* c);
string& operator=(const string&s);
string& assign(const char *c);
string& assign(const char *s,int n);
string& assign(const string &s);
string& assign(int n,char c);

拼接操作 :

string& operator+=(const char* str);
string& operator+=(const char c);
string& operator+=(const char *s);
string& append(const char *s);
string& append(const char *s ,int n);
string& append(const string *s);
string& append(const string &s,int pos,int n)//将字符串s的从pos开始的n个字符拼接;

查找替换操作:

//查找
int find(const string &str,int pos = 0) const;//从pos处开始查找str第一次出现的位置
int find(char *s,int pos = 0) const;
int find(const char*s,int pos = 0,int n) const;//从pos处开始查找s的前n个字符第一次出现的位置
int find(const char c,int pos = 0)const;
int rfind(const string &str,int pos = npos) const;//从pos处开始查找str最后一次出现的位置
int rfind(char *s,int pos = npos) const;
int rfind(const char*s,int pos = npos,int n) const;//从pos处开始查找s的前n个字符最后一次出现的位置
int rfind(const char c,int pos = npos)const;
//若是没有找到就会返回string::npos 即 s.npos

//替换
string& replace(int pos,int n,const string &str);//替换从pos开始的n个字符为str前n个字符;
string& replace(int pos,int n,const char *s);

比较操作:

//返回值:-1--- < ;1--- > ;0--- ==
int compare(const string &s)const;
int compare(const char *s)const;

字符获取操作:

char& operator[](int n);
char& at(int n);

插入删除操作:

string& insert(int pos,const char * s);
string& insert(int pos,const string &str);
string& insert(int pos,int n,char c);
string& erase(int pos,int n = npos);

获取字串操作:

string substr(int pos = 0,int n = npos)const

字符串类型

string //---上面介绍 
char* //--- 指向字符串的指针(指向字符串的首个字母)
const char*// ---该声明指出,指针指向的是一个const char*类型,即不能通过当前的指针对字符串的内容作出修改,但可以修改指针指向
char[] //---是一个char型数组,也是该数组首元素的地址,是常量,其值不可以改变 ---char* const 类型

char* 和 char[] 区别

char* str = "hello";//会报错
/*
    首先声明一个char*变量;
    其次在内存中的文字常量区中开辟了一个空间存储字符串常量”hello”
    最后返回这个区域的地址,作为值,赋给这个字符指针变量a
*/
//上述中,“hello”是 const char* 是不能修改的,若执行赋值等操作可能会报错;
//规范使用
const char* str = "hello";//保证意外赋值语句不会通过编译


char str[] = "hello";    
/*
首先声明一个char 型的数组, 
其次为该数组“赋值”,即将”hello”的每一个字符分别赋值给数组的每一个元素
*/
//说这么多,工作中还是使用string方便。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值