std::string 简单入门
- string的定义原型
typedef basic_string<char, char_traits<char>, allocator<char> >
string;
typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >
wstring; // 第二三个参数有默认值 - string部分构造方式
// string 部分构造方式
#include <iostream>
#include <string>
using namespace std; int main(void)
{
string s1;
string s2("ABCDEFG");
cout << s1 << endl;
cout << s2 << endl; // 使用最初的形式定义
basic_string<char> s3("xxxx");
cout << s3 << endl; /*
basic_string(
const value_type *_Ptr,
size_type _Count
);
*/
string s4("DEFG", 2);
cout << s4 << endl; // DE
/*
basic_string(
const basic_string& _Right,
size_type _Roff,
size_type _Count = npos
);
*/
string s5(s2, 2, 2);
cout << s5 << endl; //CD /*
basic_string(
const_iterator _First,
const_iterator _Last
);
*/
string::const_iterator first = s2.begin() + 1;
string::const_iterator end = s2.begin() + 3; // [first, end)
string s6(first, end);
cout << s6 << endl; // BC return 0;
} - string常用成员函数
// string 部分成员函数部分形式操作
#include <iostream>
#include <string>
using namespace std; int main(void)
{
string s1("ABCDEC");
cout << s1.size() << endl;
cout << s1.length() << endl; cout << s1.empty() << endl;
// 一样第二个参数是count,不是截至位置
string s2 = s1.substr(1, /*4*/string::npos); // string::npos == 4294967295
cout << s2 << endl; //find
/*
size_type find(
value_type _Ch,
size_type _Off = 0
) const;
*/
// 查找某个字符在string中第一次出现的位置(下标),没找到返回 4294967295 最大值
cout << s1.find('C') << endl; // 2
//size_type -> size_t ->unsigned int
/*
size_type find(
const value_type* _Ptr,
size_type _Off = 0
) const;
*/
// 在string中查找字符串,找到返回第一次出现位置的下标,没找到返回 string::npos, 4294967295 最大值
cout << s1.find("CD") << endl; // 2
/*
size_type find(
const basic_string<CharType, Traits, Allocator>& _Str,
size_type _Off = 0
) const;
*/
// 在string中查找string
cout << s1.find(s2) << endl; //rfind,反向查找,返回第一次查找到的下标
cout << s1.rfind('C') << endl; // 5 //replace
/*
basic_string<CharType, Traits, Allocator>& replace(
size_type _Pos1,
size_type _Num1,
const value_type* _Ptr
);
*/
// 第三个参数也能是string,这里不写了,只介绍这一个好了
string s3 = s1;
s3.replace(1, 2, "RRR");
cout << s3 << endl; // ARRRDEC // compare
cout << s3.compare(s1) << endl; // 1, s3 > s1 // insert
/*
basic_string<CharType, Traits, Allocator>& insert(
size_type _P0,
const value_type* _Ptr
);
*/
s3.insert(2, "aaaaaaaaaaa");
cout << s3 << endl; // ARaaaaaaaaaaaRRDEC // append
/*
basic_string<CharType, Traits, Allocator>& append(
const value_type* _Ptr
);
*/
s3.append("OOOOOOOOOOOOOOOOO");
cout << s3 << endl; // ARaaaaaaaaaaaRRDECOOOOOOOOOOOOOOOOO // swap
/*
void swap(
basic_string<CharType, Traits, Allocator>& _Str
);
*/
s3.swap(s2);
cout << s3 << endl;
cout << s2 << endl; return 0;
} - string综合应用
在字符集中查找存在的首尾字符,并截取。
#include <iostream>
#include <string>
using namespace std; int main()
{
string strinfo = " //*---------Hello World!--------------*//";
string strset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
/*
size_type find_first_of(
const basic_string<CharType, Traits, Allocator>& _Str,
size_type _Off = 0
) const;
*/
string::size_type first = strinfo.find_first_of(strset);
if (first == string::npos)
cout << "not found." << endl;
string::size_type end = strinfo.find_last_of(strset);
if (end == string::npos)
cout << "not found." << endl;
//cout << "string::npos" << string::npos << endl; // string::npos == 4294967295
cout << strinfo.substr(first, end - first + 1) << endl; return 0;
} - string简单去除字符串左右空格
// string 简单实现去除字符串左右空格
#include <iostream>
#include <string>
using namespace std; class StringUtils {
public:
static void LTrim(string &s)
{
string drop = " \t";
s.erase(0, s.find_first_not_of(drop));
} static void RTrim(string &s)
{
string drop = " \t";
s.erase(s.find_last_not_of(drop)+1);
} static void Trim(string &s)
{
LTrim(s);
RTrim(s);
}
}; int main(void)
{
string s1 = " ABCD ";
StringUtils::Trim(s1);
cout << s1 << endl; // "ABCD"
cout << s1.size() << endl; // 4 return 0;
}
http://www.cnblogs.com/ifpelset/articles/4523925.html
std::string 简单入门的更多相关文章
- 标准C++类std::string的内存共享和Copy-On-Write...
标准C++类std::string的 内存共享和Copy-On-Write技术 陈皓 1. 概念 Scott Meyers在<More Effective C++>中举了个例子,不知你是否 ...
- 【转】标准C++类std::string的内存共享和Copy-On-Write技术
1. 概念 Scott Meyers在<More Effective C++>中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功 ...
- 标准C++类std::string的内存共享和Copy-On-Write技术
标准C++类std::string的 内存共享和Copy-On-Write技术 陈皓 1. 概念 Scott Meyers在<More Effective C++>中举了个例子,不知你是 ...
- [原创]MYSQL的简单入门
MYSQL简单入门: 查询库名称:show databases; information_schema mysql test 2:创建库 create database 库名 DEFAULT CHAR ...
- could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string'
VS2008, 写一个简单的demo的时候出现了这个: 1>------ Build started: Project: GetExportTable, Configuration: Relea ...
- Okio 1.9简单入门
Okio 1.9简单入门 Okio库是由square公司开发的,补充了java.io和java.nio的不足,更加方便,快速的访问.存储和处理你的数据.而OkHttp的底层也使用该库作为支持. 该库极 ...
- 【java开发系列】—— spring简单入门示例
1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...
- C++: std::string 与 Unicode 结合
一旦知道 TCHAR 和_T 是如何工作的,那么这个问题很简单.基本思想是 TCHAR 要么是char,要么是 wchar_t,这取决于_UNICODE 的值: // abridged from tc ...
- C++: std::string 与 Unicode 如何结合?
关键字:std::string Unicode 转自:http://www.vckbase.com/document/viewdoc/?id=1293 一旦知道 TCHAR 和_T 是如何工作的,那么 ...
随机推荐
- 【Codeforces Round #434 (Div. 2) A】k-rounding
[链接]h在这里写链接 [题意] 在这里写题意 [题解] 转换一下就是求n和10^k的最小公倍数. [错的次数] 0 [反思] 在这了写反思 [代码] #include <bits/stdc++ ...
- 影响stm32仿真的因素
可能是因为电池电量不足??? 电量不足可能会妨碍SD卡的挂载
- Yii Framework2.0开发教程(1)配置环境及第一个应用HelloWorld
准备工作: 我用的开发环境是windows下的apache+mysql+php 编辑器不知道该用哪个好.临时用dreamweaver吧 我自己的http://localhost/相应的根文件夹是E:/ ...
- Write Code As If You Had to Support It for the Rest of Your Life
Write Code As If You Had to Support It for the Rest of Your Life Yuriy Zubarev YOU COULD ASK 97 PEOP ...
- RSA公钥验签
1.业务场景,公司做理财业务,但是可能有第三方合作.与第三方合作获得更多客户流量.别人可以在第三方进行购买理财产品.那么怎么保证交易信息的安全性那,我们这里给出rsa加密实现原理. 2.工具类rsa: ...
- java并发api总结
开发十年,就只剩下这套架构体系了! >>> 1.java.util.concurrent包 1.1 Executors Executor:接口,仅有一个方法为execute(Ru ...
- Nginx+uswgi+Django部署
详情参考: http://blog.csdn.net/a_little_snail/article/details/78045636
- Android 基于Bmob平台数据管理常用方法整理
最近想搞一下基于Bmob平台的应用开发,发现确实挺方便的,很好的解决了服务器后台部署的难题, 但是也有一些弊端,数据架构的可扩展性不强,做一些数据结构简单的应用还是可以的. package com.b ...
- Java 常用工具类---- 各种字符集编码判断与转换
import java.io.UnsupportedEncodingException; /** * 判断字符编码 * * @author guyinyihun */ public class Cha ...
- HBase总结(十一)hbase Java API 介绍及使用演示样例
几个相关类与HBase数据模型之间的相应关系 java类 HBase数据模型 HBaseAdmin 数据库(DataBase) HBaseConfiguration HTable 表(Table) H ...