string和C语言字符串之间的相互转换以及string常用函数
#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常用函数相关推荐
- C 字符串转换为c语言字符串,OC字符串与C语言字符串之间的相互转换
1.C转OC字符串 const char *cString = "This is a C string"; // 动态方法 NSString *ocString1 = [[NSSt ...
- string、char *、char []之间的相互转换
最近工作中遇到了string.char *.char []之间的相互转换,今天终于抽出时间将他们之间的转换记录下来,使用的是CodeBlocks软件,编译器为GNU GCC compiler,下面看代 ...
- JAVA8数组相并_【Java笔记】Java8中数组(引用类型)、String、List、Set之间的相互转换问题...
数组.String.List.Set之间的相互转换问题 如果觉得对你有帮助,能否点个赞或关个注,以示鼓励笔者呢?!博客目录 | 先点这里 本博主要是相理清楚一些转换的逻辑,顺便总结一下贴出来.这里是把 ...
- php 二进制字符串转图片,PHP二进制与字符串之间的相互转换_PHP教程
PHP二进制与字符串之间的相互转换 [代码]php代码: header("Content-type: text/html; charset=utf-8"); /** * 将字符串转 ...
- vue/js数组转字符串之间的相互转换
vue/js数组和字符串之间的相互转换 // 数组转字符串 let arr = [1,2,3] arr.join(',') //变成字符串,并以逗号分隔 // 字符串转数组 let str = '1, ...
- 数字、字符和字符串之间的相互转换
在数字和字符之间转换 一.整数转字符 1.在后面加'0'即可,如:'1'+'0' 这样做可行是因为字符0到字符9在ascii编码时是连续的,字符0的ascii值是48,字符1的ascii值是49,其他 ...
- java中list、map、array、实体类、字符串之间的相互转换,以及java8 stream使用
1.list与字符串互转 // 导入阿里的fastJson.jar <!--添加fastjson依赖--><dependency><groupId>com.alib ...
- python中字符串和json的转换,Python笔记——json和字符串之间的相互转换
json和字符串之间的转换,主要使用到json库中的json.loads()函数json.dumps()含函数. 所以我们首先要导入json库. import json 一.字符串转为json,使用 ...
- C语言字符串库函数 #include <string.h>
c语言字符串库函数#include<string.h> 在头文件<string.h>中定义了两组字符串函数.第一组函数的名字以str开头:第二组函数的名字以mem开头.只有函数 ...
最新文章
- ue4android相机拍照插件,cordova-plugin-camera相機插件使用
- Nginx安装成Windows服务
- Oracle入门(五C)之68个系统变量的key和默认value
- jenkins jboss_与JBoss Fuse,Jenkins和Nexus的持续集成
- linux6/7 下载、安装、配置JDK
- Android开发笔记(八十九)单例模式
- Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法
- python编程入门-最好的Python入门教材是哪本?
- 双拼输入法是个啥以及我是如何学会使用它的
- Java全栈(前端+后端)工程师学习路线
- mysql 数据库恢复模式_数据库的恢复模式
- acwing算法基础课
- 终于有人把元数据讲明白了
- 可穿戴设备的发展前景
- Word 里文字对齐推荐这4种方法
- 计算机英语-基础知识
- jQuery-链接api实现星座运势和手机号归属地查询
- DB2浮点数转换成字符串
- python动态图片转字符画_Python:图片转字符画
- chromedriver selenium谷歌浏览器驱动