文档章节

2.2 string

把南墙撞开
 把南墙撞开
发布于 2017/02/03 23:22
字数 419
阅读 2
收藏 0

字符数组的封装

基本操作与vector很像,它们内部采用的都是数组结构

#include<string>


创建string对象:

string s;


给string对象赋值

方式一:s="i love coding";

方式二: char a[256];

scanf("%s", &a);

s=a;


尾部添加字符/字符串:

s=s+'a';

s=s+" forever";

s.append(" forever");


插入字符

s.insert(s.begin()+1,'p');


下标方式随机访问字符:

cout << s[3];


删除:

erase(s.begin() + 2);

erase(s.begin(), s.begin()+3);


长度:length()

判空:empty()


替换:

s.replace(2,5,"hi"); //从2开始,计数5个字符,将其换为"hi"


子串:

s.find('a');

s.fine("abc");

//查找第一次出现的位置,如果查不到,则返回4294967295


比较:

s.compare("cat"); //s大,返回1;s小,返回-1;相等,返回0。


reverse逆序子串

reverse(s.begin(), s.end());


字符数组与string对象的互操作

char a[256];

scanf("%s", &a);

string s=a;

printf("%s", a);

printf(s.c_str());

cout << a;

cout << s;


string对象与sscanf函数

sscanf函数可以把一个字符串按需要的方式分离出子串,甚至是数字。

char a1[256], a2[256], a3[256];

sscanf("aaa bbb ccc","%s %s %s", &a1, &a2, &a3); //此时a1=aaa;a2=bbb;a3=ccc;

int a,b,c;

sscanf("111 222 333","%d %d %d", &a, &b, &c); //此时a=111;b=222;c=333;

sscanf("111,222$333","%d %d %d", &a, &b, &c); //此时a=111;b=222;c=333; 因为字符串的数字分隔符为','和'$'


string和数值的相互转换

string d2s(double x)  //double to string  d2s
{
    ostringstream oss;
    if (oss << x)
        return oss.str();
    return "conversion error"; // if error
}

double s2d(const string &s)  //string to double  s2d
{
    istringstream iss(s);
    double x;
    if (i >> x)
        return x;
    return 0.0; //if error
}


如果需要把读入的数据按位分开,则可采用string类型完成数据读取,然后按下标访问各位数值。





本文转载自:http://blog.csdn.net/weixin_37289816/article/details/54716009

把南墙撞开
粉丝 0
博文 73
码字总数 21068
作品 0
昌平
私信 提问
Android解压ZIP文件

欢迎Follow我的GitHub, 关注我的CSDN. 其余参考Android目录 我们微信公众号:杨守乐 推荐文章: 如果你喜欢上了一个程序员小伙,献给所有的程序员女友 学习资料(干货汇集)不断更新【更新于...

xiaole0313
2017/07/03
0
0
Linux平台Swift语言开发学习环境搭建

1.序言 这两天一直忙,没来得及记录东西,周三12月4日凌晨1点多看到苹果正式开源了Swift,国外各大媒体资讯动作超级快。我也兴奋的起来看了一遍关于Swift开源的最新消息。众所周知,苹果平台...

大茶园丁
2015/12/07
8.6K
47
android 手机 应用程序版本号 和操作系统版本号

//获取当前应用程序的版本号 PackageManager packageManager = getPackageManager(); // getPackageName()是你当前类的包名,0代表是获取版本信息 PackageInfo packInfo = null; try { packI...

caikezhan
2012/03/28
1K
0
openJDK之JDK9的String

衷心建议读者阅读源码,这篇内容比较简单。 openJDK9开始,String的底层实现不一样了,具体内容如下。 1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使...

克虏伯
2018/09/26
116
0
UI标签库专题十:JEECG智能开发平台 Form(form标签)

Form(form标签) 1.1. 参数 属性名 类型 描述 是否必须 默认值 action string 表单提交地址 否 null items string 循环集合值 是 null 1.2. 用法 <t:form action="userAction" items =nul...

Jeecg
2014/06/11
486
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud Sleuth 整合 feign 源码分析

org.springframework.cloud.sleuth.instrument.web.client.feign.TraceFeignClient 包括创建span一些参数

xiaomin0322
7分钟前
0
0
Less 延伸

extend 是一个 Less 伪类,它通过使用 :extend 选择器在一个选择器中扩展其他选择器样式。 扩展语法 扩展可以是附加到选择器,也可以是集中放置在规则,看上去像是带有选择器参数的可选伪类,...

凌兮洛
7分钟前
0
0
RedHat 7.0系统中安装mysql 5.7.22

在安装之前,首先要查看的是,你的系统中有没有已经安装过的情况。键入rpm -qa|grep mysql,如果无任何显示,则表示没有安装过相关组件,如果有,则根据显示出来的名字,键入rpm -e --nodeps...

最菜最菜之小菜鸟
13分钟前
0
0
RPA:企业信息孤岛的“克星”

为了降本增效,近来世界范围内掀起一股流程优化的热潮,转型升级成为众多企业时刻挂在嘴边的热词。不过在企业数字化转型的过程中,信息孤岛的出现,往往成为了企业升级的绊脚石。 信息孤岛:...

UiBot
13分钟前
1
0
我的测试

我的测试

daiison
13分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部