字符串

using 关键字

类似 python里的import,是个导入命名空间的关键字,用法

using namespace::name
  • 头文件中不要使用using关键字,会导致其他使用了头文件的地方产生未知的行为。

string

初始化

string s1;
string s2(s1);
string s2=s1;
string s3("value");
string s4 = "value";
string s5(2,'c');

s4,s2=s1 这两种初始化的方式叫做拷贝初始化,编译器把等号右侧的值拷贝到新创建的对象中去。不用等号叫做直接初始化。

string的操作

os<<s;
is>>s;
getline(is,s);
s.empty();
s.size();
s[n];
s1+s2
s1=s2 
s1==s2 比较字符内容是否完全一样
s1!=s2
<,<=,>,>= 利用字符在字典中的顺序进行比较,且对字母的大小写敏感
  • s.size() 返回的不是无符号数,而是string::size_type类型

string字符串比较的规则

  • "=="和"!="对两个string所包含的字符进行比较,大小写全部相同,则相对,否则不相等
  • ">","<",">=","<=" 如果s1是s2的从第一个字母开始的子串,则s1小于s2
  • 如果两个string对象某些位置上字母不一致,则从第一个相异字母开始用字典序进行比较

字符相加的规则:

  • 允许将字符和字符串相加,但 + 号两侧,必须有其中一个是string对象,若两个都是字面值,则非法
    如
string s1 = "world" ;
string s2 = "hello" + s1;

合法,但

string s1 = "hello"+ "world";

非法。

  • 字符串字面值和string不是同一种类型

如何遍历string

string str1("some string");
for(auto c : str)
    cout<<c<<endl;

如何使用for改变字符串中的字符

string s("hello world");
for (auto &c:s)
    c = toupper(c);
cout<<s<<endl;

只修改其中一个字符

使用下标

string s("hello");
s[0] = 'a';
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容