C++之string

2023-11-16

一些简单的关于string对象的知识,以后还会补充

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*
标准库类型string表示可变长的字符序列
使用string类型首先包含string头文件
string定义在命名空间std中
定义和初始化string对象
*/
#include <string>
#include <iostream>
using  std::string;
using  std::cout;
using  std::cin;
using  std::endl;
int  main(){
 
     auto  a = 10;
     cout<< "中文auto a=" <<a<<endl;
 
     string s1;   //默认初始化,是一个空字符串
     string s2 = s1;  //s2是s1的副本
     string s3= "hello world!!!" //s3是字符串字面值的副本,拷贝初始化
     string s4(10, 'v' );   //直接初始化
     string s5(10, 'a' );   //直接初始化
     string s6( "adfg" );   //s6是字面值"adfg"的副本,除了字面值最后的那个空字符外
     string s7= "value" ;   //等价于string s6("adfg");
 
     //直接初始化和拷贝初始化
     cout<< "s1=" <<s1<< "\n" << "s2=" <<s2<< "\n" << "s3=" <<s3<< "\n" << "s4=" <<s4<< "\n" << "s5=" <<s5<< "\n" <<endl;
 
     cout<< "s6=" <<s6<< "\n" <<endl;
     cout<< "s7=" <<s7<< "\n" <<endl;
     /*
     s1=
     s2=
     s3=hello world!!!
     s4=vvvvvvvvvv
     s5=aaaaaaaaaa
     */
 
     //读写string对象
     string ss;
     cin>>ss;  //将string对象读入ss,遇到空白停止(按回车键)
     cout<<ss<<endl;
 
     //读取未知数量的字符串
     string word;
     //while(cin>>word){ //按ctrl+c可以结束
     //    cout<<word<<endl;
     //}
 
     //使用getline读取一整行
     //string line;
     //while(getline(cin,line)){
     //    cout<<line<<endl;
     //}
 
     if (s1.empty()){
         cout<< "s1 is empty!!" <<endl;
     }
 
     cout<< "s7--length==" <<s7.size()<<endl;
 
     //size函数返回值类型为string::size_type
     string::size_type len = s6.size();
     cout<< "s6--length==" <<len<<endl;
 
     //两个string对象相加
     string add1= "123" ,add2= "456" ;
     cout<< "plus result=" <<add1+add2<<endl;
 
     //string对象和字面值相加
     string add3= "789" ;
     cout<< "plus result=" <<add3+ "98765" <<endl;
 
     //不能把两个字面值直接相加(编译不能通过)
     //cout<<"result===="<<"sdsd"+"sbsb"<<endl;
 
     //使用范围for循环处理字符串
     string str( "some thing" );
     for ( auto  c:str){
         cout<<c<<endl;
     }
 
     //使用下标或索引访问string对象
     if (!str.empty()){
         str[0] =  toupper (str[0]);
         cout<< "使用下标访问string对象,并改变第一个字符为大写" <<str<<endl;
     }
     return  0;
}

c++string对象和c风格字符串

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <string>
#include <iostream>
using  std::string;
using  std::cout;
using  std::cin;
using  std::endl;
int  main(){
 
     //c风格的字符串和string对象混合使用
     string s( "hello world!!!" );
     char  str[] = { 'h' , 'e' , 'l' , 'l' , 'o' , '\0' };   //c中的字符数组
     //允许使用以空字符结束的字符数组初始化string对象或为string对象赋值
     string s1 = str;
     cout<<s1<<endl;  //打印出hello
 
     char  str2[] = { "I am happy" };  //用字符串常量来初始化字符数组
     string s2 =str2;
     cout<<s2<<endl;  //I am happy
 
     char  str4[]= "do some thing" //用字符串常量来初始化字符数组,可以省略花括号
     string s3 = str4;
     cout<<s3<<endl;  //do some thing
 
//    c++的c_str成员函数,该函数的返回结果是一个指针,该指针指向一个以空字符结束的字符数组。
     const  char  *str3 = s3.c_str();
     cout<<str3<<endl;   //打印出do some thing
}




FROM:  http://my.oschina.net/xinxingegeya/blog/225248

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++之string 的相关文章

  • bfs打开转盘锁

    转盘锁有四位 每位10个数字 每次只能转一位 而且转的过程中不能出现deadends中的情况 求出最后转几步才能的出target 一串字符串往上往下拨一位会有8种情况 相当于一个节点有8个邻接节点 在这么一个图中 只有一个终点 而且有的节点
  • AcWing题解

    104 货仓选址 417 不高兴的津津 421 陶陶摘苹果 425 明明的随机数 429 奖学金 441 数字统计 445 数字反转 449 质因数分解 680 剪绳子 756 蛇形矩阵 1381 阶乘 3208 Z字形扫描 3375 成绩
  • 银河麒麟安装后,网速过慢,经常断网,网卡:RTL8111/8168/8411

    问题描述 银河麒麟是一款国产系统 我前端时间下载并安装官网提供的试用版本 安装完之后 发现网络时常出现问题 经常网速变慢或者断网 需要电脑休眠之后 重新激活才能连上网络 原因分析 在长达一个月的使用过程中 断断续续的排查中 终于发现了是网卡
  • PYTHON爬虫小工具

    文章目录 google headers格式转换 firefox headers格式转换 判断服务器检测哪些headers头 判断服务器检测哪些cookies值 google headers格式转换 def googleHeadersForm
  • electron-vue 的初步安装使用

    1 安装node 官网Node下载进行安装 2 安装vue cli install 可以缩写为 i npm i g vue cli 安装完成后可以通过输命令查看安装的版本 vue V 2 9 6 3 安装electron vue脚手架 vu
  • 奇安信可信浏览器下载地址

    下载奇安信可信浏览器国密开发者专版 https www qianxin com ctp gmbrowser html

随机推荐

  • 真题详解(UML图)-软件设计(四十七)

    真题详解 Flynn分类 软件设计 四十六 https blog csdn net ke1ying article details 130072198 某搜索引擎在使用过程中 若要增加接受语音输入的功能 使用户可以通过语音来进行搜索 此时对
  • 海岸线——模拟题

    题目链接 http icpc upc edu cn problem php cid 2230 pid 0 题目描述 一个王国分成n m个六边形区域 每个区域内是陆地或者是水 如果一条边两侧为陆地和水 则该条边成为海岸线 求这个王国海岸线的长
  • UE4 抗锯齿设置

    https blog csdn net qq 27151549 article details 80779768
  • Python __str__() 方法

    str 方法和 init 方法类似 都是一些特殊方法 所以前后都有双下划线 它用来返回对象的字符串表达式 如果要把一个类的实例变成 str 就需要实现特殊方法 str 不使用 str 方法 class Student object def
  • 数据结构:直接插入排序详解,java代码实现

    1 动态图 橙色表示有序值红色表示待排序的值 即代码里的temp绿色表示temp的前一个值 即代码里第二个for循环里比较的值a j 2 实现代码 直接插入排序 public static void straightInsertionSor
  • 区块链基本原理概述

    1 简介 区块链本质上是一个由若干区块构成的数据链 这条数据链被分散保存到多个计算机节点 这些计算机节点相互独立 相互勿须信任 没有一个权威的中心节点 因而区块链被认为是一个 去中心化 去信任 的系统 在这两个概念中 去中心化 是方法 去信
  • cad上样条曲线上的点太多了_CAD如何将样条曲线转换成多段线

    有时在使用CAD中 需要把绘制出来的样条曲线转换成多段线来方便以后的编辑或输出到别的软件 设备 然而要怎么进行操作才能转换出来呢 下面有几种实用的方法供大家参考 第一种方法 特别使用CAD低版本的用户 打开CAD 打开需要转换的样条曲线图纸
  • Discuz! X2.5 个人空间主题列表帖子分页地址出错的解决方法

    可用以下方案解决 打开文件 source unction unction misc php 找到 domain http G setting domain app forum G setting domain app forum G set
  • Python函数(完整版)

    01 函数的概念 所谓函数 就是把就有独立功能的代码块组织为一个小模块 在需要的时候调用 函数的使用包含两个步骤 1 定义函数 封装 独立的功能 2 调用函数 享受封装的成果 函数的作用 在开发程序是 使用函数可以提高编写的效率以及代码的重
  • java中constant_如何在Java中定义常量(Constant)

    Method One interface ConstantInterface String SUNDAY SUNDAY String MONDAY MONDAY String TUESDAY TUESDAY String WEDNESDAY
  • Windows下使用命令行直接编译STM32

    1 需要准备的工具 makefile运行工具 MinGW gcc编译工具 arm none eabi gcc 2 安装步骤 2 1 MinGW安装 MinGW是是将GCC编译器和GNU Binutils移植到Win32平台下的产物 包括一系
  • 计算机毕业设计Java平面设计作品管理系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java平面设计作品管理系统 源码 系统 mysql数据库 lw文档 计算机毕业设计Java平面设计作品管理系统 源码 系统 mysql数据库 lw文档 本源码技术栈 项目架构 B S架构 开发语言 Java语言 开发软件 i
  • angular自带的一些api_在angular 2中使用HTTP Rest API

    小编典典 提供的很好的答案 但是我想补充一点 所以发布作为答案 首先 要使用Rest API 我们需要导入Http和HTTP PROVIDERS模块 当我们谈论Http时 第一步显然是 但是 是的HTTP PROVIDERS 在bootst
  • 为Linux的cp和mv命令添加进度条

    为Linux的cp和mv命令添加进度条 cp和mv可能是大家日常中使用最多的Linux命令之一 但是有一个突出的问题是这两个命令都不会有任何提示信息 这在操作大文件时候只能干等 可能大家对此已经习以为常 但是其实上也有解决解决方法 本文我们
  • Spice-server源码简要分析

    下载地址 https www spice space org download releases spice server spice 0 14 1 tar bz2 也可以在gitlab下载 https gitlab com spice s
  • LocalDate,LocalDateTime,Date及时间戳的转换

    1 时间戳转LocalDateTime 时间戳如果是字符串则先转为long LocalDateTime localDateTime LocalDateTime ofEpochSecond System currentTimeMillis 1
  • Kendo UI开发教程(16): Kendo MVVM 数据绑定(五) Events

    本篇和Kendo UI开发教程 14 Kendo MVVM 数据绑定 三 Click类似 为事件绑定的一般形式 Events绑定支持将ViewModel的方法绑定到DOM元素的事件处理 如鼠标事件 例如 1
  • c++中管道代码_如何在管道中添加动态代码分析

    c 中管道代码 我们大多数人都对著名的马克 扎克伯格宣言 快速行动并打破事物 非常熟悉 在2014年 这是一个非常大胆的声明 正如扎克伯格很快意识到的那样 可能太过大胆了 后来他撤回了它 表明了他想要快速行动但保持稳定的新愿望 为了更好地解
  • layui复选框

    效果图 layui复选框 一个主的复选框控制多个从复选框 主复选框和从复选框的颜色不一样 layui复选框的样式 都是在选然后才会有的 所以直接通过css设置就实现不了了 只可以通过js动态设置 html代码使用了jfinal的模板 div
  • C++之string

    一些简单的关于string对象的知识 以后还会补充 1 2 3 4 5 6 7 8 9 10 11