STL-string

#include "stdafx.h"
#include<iostream>
#include<string>
#include<vector>//vector向量容器
using namespace std;

/******************************************************************/
/*http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html*/
int main(int argc, char* argv[])
{
/************************************** 1 ***************************************************/
/*1、c语言中字符串 ,并不是真正意义上的字符串*/
char name[20] = "你好!";
char *name2 = "你好!";

/*************************************** 2 **************************************************/
/* 2、创建字符串并赋值*/
//2.1、直接给字符串赋值
string s ="hello world";
//2.2 、将字符指针赋给字符串
char ss[10];
cin>>ss;
string s1 = ss;
cout<<s1<<endl;

/****************************************** 3 ***********************************************/
/*3、string 尾部添加字符*/
//3.1、使用+
s+=‘a‘;
s+="hi!";
//3.2、使用append
s.append("使用append方法!");
cout<<s<<endl;

/****************************************** 4 ***********************************************/
/*4、给string对象插入字符*/
//定义迭代器
string::iterator it;
it = s.begin();
//将‘p’插入第二个位置前
s.insert(it+2,‘p‘);

/****************************************** 5 ***********************************************/
//访问string对象的元素,使用下标方式访问
cout<<"采用下标方式访问第三个元素:"<<s[3]<<endl;

/******************************************* 6 **********************************************/
//删除string对象的元素
it =s.begin();
s.erase(s.begin()+2);//删除第二个元素
s.erase(it+1,it+3);

/******************************************* 7 **********************************************/
//返回字符串的长度
cout<<"字符串长度为:"<<s.length()<<endl;
//判断字符串是否为空
cout<<"判断字符串是否为空(空输出1,否则输出0)"<<s.empty();

/******************************************* 8 **********************************************/
/*********************替换string对象的字符******************************************/
s.replace(3,3,"good");//从第3个开始,将连续的三个字符串替换为“good”

/******************************************* 9 **********************************************/
/*搜索string对象的元素或者字串*/
cout<<s.find(‘c‘)<<endl;//查找第一个字符为‘c‘,返回下标值
cout<<s.find("goo")<<endl;//差值第一个字符串为"goo",返回下标值

/******************************************* 10 **********************************************/
/*string对象比较,*/
s.compare("hello");//比对方大,返回1;相等返回0;否则返回-1

/******************************************* 11 **********************************************/
/*string对象作为vector元素*/
vector<string> v;
v.push_back("jack");
v.push_back("kate");
cout<<"vector的第一个字符串为:"<<v[0]<<endl;
cout<<"vector的第一个字符串的第一个字符为:"<<v[0][0]<<endl;

/******************************************* 12 **********************************************/
/******************************string对象的数字化处理*********************/
//ACM竞赛中,常常需要将读入的数字的每位分离出来,如果采用取余的方法,花费的时间会太长,这时候,我们可以将读入的数据当成字符串来处理
string sn="1234";
int sum =0;
for(int i=0;i<sn.length();i++)
{
if(sn[i]==‘0‘) sum+=0;
else if(sn[i]==‘1‘) sum+=1;
else if(sn[i]==‘2‘) sum+=2;
else if(sn[i]==‘3‘) sum+=3;
else if(sn[i]==‘4‘) sum+=4;

}
cout<<"sum为:"<<sum<<endl;

/******************************************* 13 **********************************************/
//string substr(int pos = 0,int n = npos) const;//返回pos开始的n个字符组成的字符串
string str1 = s.substr(2,4);
cout<<"字串为:"<<str1<<endl;

return 0;
}
//ABD##E##CF##G##

时间: 2025-01-05 16:32:44

STL-string的相关文章

stl string 使用指定的分隔符分割成数个子字符串

#include <iostream> #include <vector> #include <string> #include <algorithm> using namespace std; void StringSplit(const string& str,vector<string>& vStr,const char& division) { int startPos = 0; int endPos = stri

stl string 容器的使用

string 是基本的字符串序列容器,对应数据结构中的串,和vector<char>也类似,但功能更多 string 容器的使用 1,string 的构造函数是. string() 2,string的添加函数,.   insert(),push_back() 3,string的遍历.      数组形式遍历,迭代器形式遍历 4,string的字符串替换  replace() 5,string 的字符搜索 find() 6,其他的常见函数 size(),length(),empty() #inc

stl string 小练习

最近没啥可写的  这里写下做的STL小练习 作为记录 去除指定字符串中的空格 获取文件名并根据名字创建临时文件,以TMP后缀结尾,已经为TMP后缀结尾文件则创建以XXX后缀结尾文件 读取一行输入内容 并将单词翻转打印 // 1111.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <string> #include <iostream> #include <algorithm> using n

将格式化字符串赋给stl::string

代码很简单,就不解释了,直接上代码: #include <cstdio> #include <cstdarg> #include <iostream> using namespace std; //功能:将格式化字符串赋给stl::string //参数:和printf的参数一样 //返回值:返回格式化后的string类 string StringFormat(const char *format, ...) { string result; //将字符串的长度初始化为

C++标准模板库Stand Template Library(STL)简介与STL string类

参考<21天学通C++>第15和16章节,在对宏和模板学习之后,开启对C++实现的标准模板类STL进行简介,同时介绍简单的string类.虽然前面对于vector.deque.list等进行过学习和总结,但并没有一个宏观上的把握,现在通过上一篇和这一篇博文,将对C++模板以及基于C++模板的STL关联起来,形成一个总体的把握,对于掌握C++中模板(template)这一强有力的工具会十分有帮助.本文的主要内容有: (1) STL容器: (2) STL迭代器: (3) STL算法: (4) ST

深入剖析 linux GCC 4.4 的 STL string

转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Write技术. 平台:x86_64-redhat-linuxgcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC) 1. 问题提出 最近在我们的项目当中,出现了两次与使用string相关的问题. 1.1. 问题1:新代码引入的Bug 前一段时间有一个老项目来

格式字符串分配stl::string

代码非常easy,不解释,直接在代码: #include <cstdio> #include <cstdarg> #include <iostream> using namespace std; //功能:将格式化字符串赋给stl::string //參数:和printf的參数一样 //返回值:返回格式化后的string类 string StringFormat(const char *format, ...) { string result; //将字符串的长度初始化

STL - string(典型操作demo)

1String概念 string是STL的字符串类型,通常用来表示字符串.而在使用string之前,字符串通常是用char*表示的.string与char*都可以用来表示字符串,那么二者有什么区别呢. string和char*的比较 string是一个类, char*是一个指向字符的指针. string封装了char*,管理这个字符串,是一个char*型的容器. string不用考虑内存释放和越界. string管理char*所分配的内存.每一次string的复制,取值都由string类负责维护

[转载] C++ STL string的Copy-On-Write技术

原文: http://coolshell.cn/articles/12199.html stl的string是经过严格优化的, 深入理解对以后编程过程中应用string非常有益处, 感谢左耳朵耗子的精彩文章 Scott Meyers在<More Effective C++>中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里,做出一副正在复习功课的样子,其实你在干着别的诸如给班上的某位女生写情书之类的事,而一旦你的父母出来在你房间要检

[转] 深入剖析 linux GCC 4.4 的 STL string

本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Write技术. 平台:x86_64-redhat-linux gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC) 1. 问题提出 最近在我们的项目当中,出现了两次与使用string相关的问题. 1.1. 问题1:新代码引入的Bug 前一段时间有一个老项目来一个新需求,我们新增了一些代码逻辑来处理这个新需求.测试阶段没有问题,