#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <stdio.h>using namespace std;/*** @brief  string类的初始化* @note   * @param  argc: * @param  *argv[]: * @retval */
void init_test(void)
{string s1 = "aaa";string s2("bbbb");string s3 = s2; //通过copy构造函数初始化string对象string s4(10, 'a');cout << "s1   " << s1 << endl;cout << "s2   " << s2 << endl;cout << "s3   " << s3 << endl;cout << "s4   " << s4 << endl;}/*** @brief  字符串的遍历* @note   * @param  argc: * @param  *argv[]: * @retval */
void list_string(void)
{cout << "list_string" << endl;string s1 = "abcdefg";//数组方式for (int i = 0; i < s1.length(); i++){//< 将字符串当成数组一样使用cout << s1[i] << endl;}cout << "--------------------------------" << endl;//< 迭代器方式for (string::iterator it = s1.begin(); it != s1.end(); it ++)\{cout << (*it) << endl;}cout << "----------------------------------" << endl;//< at函数for (int i = 0; i < s1.length(); i ++){//< at函数能偶检测异常,出现异常的时候可以抛出异常,异常可以用sty函数进行捕获cout << s1.at(i) << endl; //< 抛出异常}cout << "---------------------" << endl;/* 异常测试 */try{//< 有异常的时候捕获异常for (int i = 0; i < s1.length() + 3; i ++) //< 故意多出来三个字节用于抛出异常{cout << s1.at(i) << endl; //< 抛出异常}}catch(...)  //< 捕捉所有的一场呢{std::cerr << "error exception" << '\n';}}/*** @brief  字符指针和string类型的转换* @note   * @param  argc: * @param  *argv[]: * @retval */
void charbuf_string(void)
{   cout << "charbuf_string" << endl;//< char * ==> stringstring s1 = "aaabcgdjsggkkws";//< string ==> char *const char *buf;buf = s1.c_str();printf("%s\n", s1.c_str());//< 3 s1的内容copy到buf中char buf1[128];s1.copy(buf1, 3, 0); //< 从零字符开始copy3个字符到buf1中cout << buf1 << endl;}
/*** @brief  string cat* @note   字符串连接* @param  argc: * @param  *argv[]: * @retval */
void string_cat(void)
{//< string方式的连接cout << "string cat " << endl;string s1 = "aaa";string s2 = "bbb";string s3 = s1 + s2;cout << s3 << endl;cout << "-------------------" << endl;s2.append(s1);cout << s2 << endl;}/* * find函数 从pos位置开始查找c字符或者字符串的位置,函数找不到就返回 -1* rfind向前查找* * replace替换* swap交换*  */
/*** @brief  search string* @note   字符串的查找和替换* @param  argc: * @param  *argv[]: * @retval */
void search_string(void)
{string s1 = "wbm hello hajhdhhfd 111 name name name 3434654655";//< 第一次出现 name的位置int index = s1.find("name", 0);cout << "index = " <<index << endl;//< 求 name出现的次数,每一次出现的数组下标int offline = s1.find("name", 0);while (offline != -1){cout << "offline = " << offline << endl;offline = offline + 1;offline = s1.find("name", offline);        }//< 替换成大写offline = s1.find("name", 0);while (offline != string::npos){cout << "offline = " << offline << endl;s1.replace(offline, 1, "N");offline = offline + 1;offline = s1.find("name", offline);  cout << "s1 替换之后" << s1 << endl;      }
}/*** @brief main  * @note  string的简单使用* @param  argc: * @param  *argv[]: * @retval */
int main(int argc, char const *argv[])
{init_test();list_string();charbuf_string();string_cat();search_string();cout << "hello world!" << endl;return 0;
}

string和C语言字符串之间的相互转换以及string常用函数相关推荐

  1. C 字符串转换为c语言字符串,OC字符串与C语言字符串之间的相互转换

    1.C转OC字符串 const char *cString = "This is a C string"; // 动态方法 NSString *ocString1 = [[NSSt ...

  2. string、char *、char []之间的相互转换

    最近工作中遇到了string.char *.char []之间的相互转换,今天终于抽出时间将他们之间的转换记录下来,使用的是CodeBlocks软件,编译器为GNU GCC compiler,下面看代 ...

  3. JAVA8数组相并_【Java笔记】Java8中数组(引用类型)、String、List、Set之间的相互转换问题...

    数组.String.List.Set之间的相互转换问题 如果觉得对你有帮助,能否点个赞或关个注,以示鼓励笔者呢?!博客目录 | 先点这里 本博主要是相理清楚一些转换的逻辑,顺便总结一下贴出来.这里是把 ...

  4. php 二进制字符串转图片,PHP二进制与字符串之间的相互转换_PHP教程

    PHP二进制与字符串之间的相互转换 [代码]php代码: header("Content-type: text/html; charset=utf-8"); /** * 将字符串转 ...

  5. vue/js数组转字符串之间的相互转换

    vue/js数组和字符串之间的相互转换 // 数组转字符串 let arr = [1,2,3] arr.join(',') //变成字符串,并以逗号分隔 // 字符串转数组 let str = '1, ...

  6. 数字、字符和字符串之间的相互转换

    在数字和字符之间转换 一.整数转字符 1.在后面加'0'即可,如:'1'+'0' 这样做可行是因为字符0到字符9在ascii编码时是连续的,字符0的ascii值是48,字符1的ascii值是49,其他 ...

  7. java中list、map、array、实体类、字符串之间的相互转换,以及java8 stream使用

    1.list与字符串互转 // 导入阿里的fastJson.jar <!--添加fastjson依赖--><dependency><groupId>com.alib ...

  8. python中字符串和json的转换,Python笔记——json和字符串之间的相互转换

    json和字符串之间的转换,主要使用到json库中的json.loads()函数json.dumps()含函数. 所以我们首先要导入json库. import json 一.字符串转为json,使用 ...

  9. C语言字符串库函数 #include <string.h>

    c语言字符串库函数#include<string.h> 在头文件<string.h>中定义了两组字符串函数.第一组函数的名字以str开头:第二组函数的名字以mem开头.只有函数 ...

最新文章

  1. ue4android相机拍照插件,cordova-plugin-camera相機插件使用
  2. Nginx安装成Windows服务
  3. Oracle入门(五C)之68个系统变量的key和默认value
  4. jenkins jboss_与JBoss Fuse,Jenkins和Nexus的持续集成
  5. linux6/7 下载、安装、配置JDK
  6. Android开发笔记(八十九)单例模式
  7. Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法
  8. python编程入门-最好的Python入门教材是哪本?
  9. 双拼输入法是个啥以及我是如何学会使用它的
  10. Java全栈(前端+后端)工程师学习路线
  11. mysql 数据库恢复模式_数据库的恢复模式
  12. acwing算法基础课
  13. 终于有人把元数据讲明白了
  14. 可穿戴设备的发展前景
  15. Word 里文字对齐推荐这4种方法
  16. 计算机英语-基础知识
  17. jQuery-链接api实现星座运势和手机号归属地查询
  18. DB2浮点数转换成字符串
  19. python动态图片转字符画_Python:图片转字符画
  20. chromedriver selenium谷歌浏览器驱动

热门文章

  1. Pyramid Attention Network for Semantic Segmentation
  2. shell脚本常用命令
  3. PCL已有点类型介绍和增加自定义的点类型
  4. 使用Hyper-V安装Ubuntu16.04 Server 网络配置
  5. 设计模式6---代理模式(Proxy Pattern)
  6. linux下ioctl遇到的坑
  7. 七月算法--12月机器学习在线班-第七次课笔记—最大熵
  8. plsql连接oracle数据库
  9. SAP BW增量队列深入研究
  10. 海量数据库解决方案2011030401