企业网站建设服务优势,公司网站怎么在百度上做推广,最新国内新闻10条,上市公司集团网站建设在c中#xff0c;string本质上是一个类#xff1b;
string与char *有些区别#xff1a;
char*是一个指针#xff1b;string是一个类#xff0c;类内封装了char*#xff0c;管理这一个字符串#xff0c;是一个char*的容器
在使用string类型时#xff0c;要加上其头文…在c中string本质上是一个类
string与char *有些区别
char*是一个指针string是一个类类内封装了char*管理这一个字符串是一个char*的容器
在使用string类型时要加上其头文件
string的初始化操作
string str1;
最直接的初始化一定要记住
后面几种了解就ok了
第二种
const char* chello world!;
string str2(c);
用char*来存储存储的是字符串常量所以某些编译器需要加上const为保持习惯建议加上const
第三种
const char* chello world!;
string str2(c);
string str3(str2);
而在输出字符串的时候可以用字符串变量名[]来输出好似跟字符指针输出方式一摸一样 所以我感觉无论是字符指针还是string类名本质是都是字符串首个元素的地址类似与数组一样所以可以利用数组的方式进行输出
其实对于字符串中字符的存取(c中的字符串还有一个方法就是调用at接口 string的赋值
第一种方式最常用基本
string str;
strhello world!
coutstrendl;
后面的了解下就欧克了
//第二种
str2str1;//第三种
string str3;
str3a;//第四种
string str4;
str4.assign(hello world);
//感觉调用assign这个接口实在不如等号来的方便//第五种
string str5;
str5.assign(hello world,5);//把前五个字符赋值给str5;
其实还有更多赋值方法不过很鸡肋大多用不到就不多介绍了
string的拼接重载操作符append接口
重载操作符已经封装在这个类内了我们只需要调用就欧克了 append接口在这里就不介绍了
string的查找和替换
查找find替换rfind
int find(const string str,int pos0) const;查找str第一次出现的位置从pos开始查找
记住这个是从0开始索引没有找到返回-1
rfind与find区别rfind从右往左查找但返回的值是从左往右计算
find从左往右查找返回的值也是从左往右
其余该查找和替换的函数的不同参数就不介绍了因为用不到
string比较
比较方式是通过ASCII值进行比较
返回1返回0返回-1 int compare(const string str)const; int compare(const char*s)const; string的插入和删除
插入string insert(int pos,const char*s);
string insert(int pos,const string str);
删除string erase(int pos,int npos); 这些函数原型都超级简单手巧几遍就可以轻松学会 string子串
函数原型string substr(int pos0,int nnpos)const;返回由pos开始的n个字符组成的字符串 第二个参数可以理解为 从pos初开始的n个字符 从下标0开始到第三个字符就是下标0是第一个字符下标1是第二个字符下标2是第三个字符所以只打印abc
string的两种输入方式
先介绍两种输出方式cin/scanf和两种输出方式cout/printf
scanf和printf是格式化输入输出输入输出效率高cin和cout是输入输出流输入输出效率低
输出流之所以慢是因为是要先把输出的东西放入缓存区再输出
对于字符cin的输入忽略空格和回车scanf(%c,i)等价于igetchar()空格和回车都会被输入
下面介绍用cin和scanf输入字符串
string s1;
cins1; cin可以直接输入
const int 10000
string s1;
s1.resize(N);
scanf(%s,s1[0]);
用scanf输入就比较麻烦了首先需要先预先指定s1的大小然后需要在scanf的参数中取首元素地址但运行速度是比cin快的