C++中字符串的使用

发表于:2016-9-21 09:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:乞力马扎罗的雪    来源:51Testing软件测试网采编

  当我们一开始使用C语言来处理字符串的时候,会感觉非常的麻烦。C语言中缺少相应的字符串处理函数,如果想要实现某个字符串功能,只能靠我们自己来实现。但是当来到C++中,字符串的处理就会变得异常简单。今天我们就来学习一下C++中最高频的字符串处理函数。示例代码上传至:https://github.com/chenyufeng1991/CppString。
  首先要引入C++中的字符串头文件:
  #include <string>
  请注意,这里的头文件是没有.h的,否则就成了C语言中的头文件了。
  (1)创建字符串
  创建字符串有好几种构造方式,最典型的方式就是使用复制构造函数,
  string str("chenyufeng",3);
  cout << str << endl;
  cout 拷贝原先的字符串开头处的3个字符最为最新的字符串。打印结果为che.
  string str2("chenyufeng",2,3);
  cout << str2 << endl;
  cout 拷贝原先字符串index=2开始处的3个字符最为新的字符串。打印结果为eny。
  // = :字符串赋值
  str2 = "Robert";
  cout << str2 << endl;
  同样也可以用直接赋值的方式为某个变量赋值字符串,使用”=“。打印结果为Robert.
  (2)swap:交换两个字符串的值
  // swap:交换两个字符串的值
  string string1 = "chen";
  string string2 = "yufeng";
  swap(string1, string2);
  cout << "string1 = " << string1 << ";string2 = " << string2 << endl;
  打印结果就已经和原先的字符串的值交换了。
  (3)+,append :添加字符串
  // += ,append:在尾部添加字符串
  string stringOrigin = "chen";
  string stringAppend = "yufeng";
  stringOrigin = stringOrigin + stringAppend;
  cout << "stringOrigin = " << stringOrigin << endl;
  stringOrigin.append("_OK");
  cout << "stringOriginAppend = " << stringOrigin << endl;
  注意,添加字符串操作是会修改原先的字符串的。可以直接使用+号进行字符串的添加,非常方便。
  (4)insert:在指定位置插入字符串
  // insert:在指定position插入字符串
  string stringInsertOrigin = "chenyufeng";
  stringInsertOrigin.insert(3, "__");
  cout << "stringInsertOrigin = " << stringInsertOrigin << endl;
  上述代码可以在indx=3位置插入__下划线,打印结果为 che__nyufeng.
  (5)erase,clear删除字符串
  // erase: 删除字符
  string stringEraseOrigin = "chenyufeng";
  stringEraseOrigin.erase();
  cout << "stringEraseOrigin = " << stringEraseOrigin << endl;
  // clear :删除全部字符
  string stringClearOrigin = "chenyufeng";
  stringClearOrigin.clear();
  cout << "stringClearOrigin = " << stringClearOrigin << endl;
  上述操作其实都是把字符串清空了。
  (6)replace:替换字符串
  // replace: 替换字符串,某个pos位置开始的size个字符替换成后面的“”字符串
  string stringReplaceOrigin = "chenyufeng";
  stringReplaceOrigin.replace(3, 2, "66");
  cout << "stringReplaceOrigin = " << stringReplaceOrigin << endl;
  上述代码把字符串从index=3开始的2个字符替换成”66“,打印结果为che66ufeng.
  (7)==,,  =: 比较字符串大小
  C++中使用这种运算符对字符串进行操作,其实都是用了运算符重载。字符串比较大小是根据字母的字典序或者说是ASCII码值按顺序比较大小。直到比较出两个字符串的不同字母或者比较到某个字符串的最后一位停止。
// ==,<,>,<=,>=:比较字符串
string stringLeft = "zhen";
string stringRight = "yufeng";
if (stringLeft == stringRight)
{
cout << "equal" << endl;
}
if (stringLeft != stringRight)
{
cout << "not equal" << endl;
}
if (stringLeft < stringRight)
{
cout << "stringLeft < stringRight" << endl;
}
if (stringLeft > stringRight)
{
cout << "stringLeft > stringRight" << endl;
}
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号