STL之string使用简介】的更多相关文章

声明一个C++字符串 string类的构造函数和析构函数如下: string s; //生成一个空字符串s string s(str) //拷贝构造函数 生成str的复制品 string s(str,ss) //将字符串str内以ss开始的部分当作字符串的初值 string s(str,ss,length) //将字符串str内ss开始长度为length的部分作为字符串的初值 string s(cstr) //将C字符串作为s的初值 string s(chars,chars_len) //将C字…
目录 1.简介 2.string类成员函数汇总 3.String类的构造函数以及析构函数 4.获取字符串长度 5.获取字符串元素 6.字符串比较方法 7.字符串输入输出 8.字符串查找函数 1.简介 要使用 string 类,必须包含头文件 <string>.string 库提供了许多其他功能,如删除字符串的部分或全部,用一个字符的部分或全部替换另一个字符串的部分或全部,插入.删除字符串中数据,比较.提取.复制.交换等. 2.string类成员函数汇总 表 1 string 类的所有成员函数…
STL有字符串处理类——stirng和wstring,但是用的时候会觉得不是很方便,因为它不能像TCHAR一样根据定义的宏在char类型字符串和wchar_t进行转换,总不能因为程序要Unicode就把所有类型转换一遍吧?有没有好办法? 答案当然是肯定的,先看看MS的TCHAR是怎么做的,以下摘自MS Platform 的tchar.h,略有删减 #ifdef _UNICODE#ifdef __cplusplus } /* ... extern "C" */ #endif/* ++++…
/*C 语言中字符数组一般会采用char str[]来存放,但是显得会比较麻烦,C++在stl中加入了string类型,对字符串常用的功能进行了封装,操作起来比较方便*/#include<cstdio>#include<string>using namespace std;int main(){ string str = "hello world"; for (int i = 0; i< str.length(); i++){ printf("%…
题目:http://poj.org/problem?id=3096 题意:给定一个字符串S,从中找出所有有两个字符组成的子串,每当组成子串的字符之间隔着n字符时,如果没有相同的子串出现,则输出 "S is surprising." , 反之,则输出 "S is NOT surprising." . 例如 AABA 把它分成两个字符为一个整体的,1..相邻两个字符 AA,AB,BA 没有相同的;    2.隔一个字符的 AB AA 没有相同;          3.隔…
在学习c++STL中的string,在这里做个笔记,以供自己以后翻阅和初学者参考. 1:string对象的定义和初始化以及读写 string s1;      默认构造函数,s1为空串 string s2(s1);   将s2初始化为s1的一个副本 string s3("valuee");   将s3初始化一个字符串面值副本 string s4(n,'c');   将s4 初始化为字符'c'的n个副本 cin>>s5;  读取有效字符到遇到空格 getline(cin,s6…
本文直接转载,非原创!仅记录供自己学习之用. 出处:http://blog.csdn.net/y990041769/article/details/8763366 在学习c++STL中的string,在这里做个笔记,以供自己以后翻阅和初学者参考. 1:string对象的定义和初始化以及读写 string s1;      默认构造函数,s1为空串 string s2(s1);   将s2初始化为s1的一个副本 string s3("valuee");   将s3初始化一个字符串面值副本…
前言   上个周末在和我的同学爬香山闲聊时,同学说到STL中的string类曾经让他备受折磨,几年前他开发一个系统前对string类还比较清楚,然后随着程序的复杂度的加深,到了后期,他几乎对string类失去了信心和信任,他觉得他对string类一头雾水.老实说,我几年前也有同样的痛苦(就是当我写下<标准C++类string的Copy-On-Write技术>之前的一段时间).那时,我不得不研究那根本不是给人看的SGI出品的string类的源码,代码的可读性几乎为零,而且随着了解越深入,就越觉得…
Vector成员函数 函数 表述 c.assign(beg,end)c.assign(n,elem) 将[beg; end)区间中的数据赋值给c.将n个elem的拷贝赋值给c. c.at(idx) 传回索引idx所指的数据,如果idx越界,抛出out_of_range. c.back() 传回最后一个数据,不检查这个数据是否存在. c.begin() 传回迭代器重的可一个数据. c.capacity() 返回容器中数据个数. c.clear() 移除容器中所有数据. c.empty() 判断容器…
结论是:两者没有任何区别 解释: C++Reference中对于两者的解释: 两者的具体解释都一模一样: 理解: length是因为C语言的习惯而保留下来的,string类最初只有length,引进STL后,为了兼容,又添加了size,便于符合STL的接口规则 人们在使用时,size() 一般用作返回容器大小的方法,length() 一般用作返回一个序列的长度,但两者返回的结果是一样的.…
string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造函数和复制构造函数,如string s1:string s2="hello":都是正确的写法.当构造的string太长而无法表达时会抛出length_error异常 string类的字符操作: const char &operator[](int n)const; const ch…
string,大小可变的字符串,有些类似于C中的字符数组. 只记载本人在ACM中常用的函数,并且全部经过程序测试. 1.初始化 string s1;——默认构造函数s1为空串 string s2(s1);——将s2初始化为与s1相同 string s3("aaa");——将s3初始化为aaa string s4(3, 'b');——将s4初始化为bbb 2.输入输出 能用cin,cout:不能用scanf,printf. 用cin读入会忽略开头所有空白字符(如空格,换行符,制表符),读…
衔接上一篇引导. 作为第一篇博客,就要大气一点. 可我好像并不知道怎么才能让自己的博客大气一点= =: 明天是我生日,自己先买个中文域名庆祝了一下…… 好了,废话说完了,结果博客也没大气到哪去……,正文,现在开始. 关于String(字符串),想必小班同学都已经很熟悉了,比char数组好用多了嘛,不用管申请多少空间,操作方便.可是据我观察,大家好像并没有对string有一个系统的认识……所以,在开篇,我要介绍介绍String这个神奇的东西. (好像并没有什么可以介绍的) String就是字符串的…
#include <iostream> #include <string> using namespace std; int main() { string s("hello"); string s2("abcdef"); string::iterator p = s.begin(); cout << *p << endl; s.insert(p, 'A'); //插入之后,p指向新插入的数据 cout <<…
string构造函数,很多重载函数: #include <iostream> #include <string> using namespace std; int main() { string s1; cout << s1 << endl; , 'a'); cout << s2 << endl; string s3(s2); //将s2的字符拷贝到s3中,之后两个完全无关 cout << s3 << endl…
String 构造 string s1("Hello"); string s2("Hello", 3); //s2: Hel string s3(s1, 2); //s3: llo string s4(s1, 2, 2); //s4: ll string s5(5, 'a'); //s5: aaaaa string s6({'a', 'b', 'c'}); //s6: abc 大小 s1="Goodbye" s1.size(), s1.lengt…
什么是容器? 容器用来存储数据的,数据可以是用户自定义类型(对象),也可以是预定义类型,c++中的容器主要使用如vector,list (顺序容器) 这些都是已经封装好了. 1.结构(struct): vector,list,deque,set,map… 2.算法(algorithms):sort,search,copy,erase… 3.迭代器(iterators):扮演容器与算法之间的胶合剂,是所谓的“泛型指针”,从实现的角度来看,迭代器是一种将 operator*,operator->,o…
通过在网站上的资料搜集,得到了很多关于string类用法的文档,通过对这些资料的整理和加入一些自己的代码,就得出了一份比较完整的关于string类函数有哪些和怎样用的文档了!下面先罗列出string类的函数有哪一些,然后再罗列出函数的原型,最后到代码的实现标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用.现将具体用法的一部分罗列如下,只起一个抛砖引玉的作用吧,好了,废话少说,直接进入正题吧!要想使用标准C++中string类,必须要包含#include <st…
1. 符合STL标准的空间配器接口 STL是c++中使用非常广泛的一个标准库,它包含各种有用的容器.而空间配置器作为STL各种容器的背后的核心,负责容器内部内存的分配和释放.不过空间配置器可以分配的也不只是内存,因为空间也意味着可以是磁盘或者其他存储介质.下边是一个符合STL规范的空间配置器的必要接口: allocator::value_type allocator::pointer allocator::const_pointer allocator::reference allocator:…
一.标准库string类型 string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作 ,在VC中直接F1查看 template < class CharType, class Traits=char_traits<CharType>, class Allocator=allocator<CharType> > class basic_string typedef basic_string<char> strin…
STL中并没有把heap作为一种容器组件,heap的实现亦需要更低一层的容器组件(诸如list,array,vector)作为其底层机制.Heap是一个类属算法,包含在algorithm头文件中.虽然STL中关于heap默认调整成的是大顶堆,但却可以让用户利用自定义的compare_fuction函数实现大顶堆或小顶堆.heap的低层机制vector本身就是一个类模板,heap基于vector便实现了对各种数据类型(无论基本数据类型还是用户自定义的数据类型)的堆排(前提是用户自定义的数据类型要提…
优先队列容器也是一种从一端入队,另一端出对的队列.不同于一般队列的是,队列中最大的元素总是位于队首位置,因此,元素的出对并非按照先进先出的要求,将最先入队的元素出对,而是将当前队列中的最大元素出对.     C++ STL 优先队列的泛化,底层默认采用 vector 向量容器,使得队列容器的元素可做数组操作,从而应用堆算法找出当前队列最大元素,并将它调整到队首位置,确保最大元素出队.     堆算法(heap algorithm) 具有 nLog(n) 阶的算法时间复杂度,优先队列也可看作容器适…
1. 创建String对象的常用方法 (1) String s1 = "mpptest" (2)  String s2 = new String(); (3) String s3 = new String("mpptest") 2. String中常用的方法,用法如图所示,具体问度娘 3.  三个方法的使用: lenth()   substring()   charAt() package com.mpp.string; public class StringDem…
http://www.cnblogs.com/wangkangluo1/archive/2011/07/22/2114118.html string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造函数和复制构造函数,如string s1:string s2="hello":都是正确的写法.当构造的string太长而无法表达时会抛出length_er…
常用代码整理: #include<iostream> #include<cstdio> #include<cstring> #include<string> using namespace std; bool startWith(const string &str,const char* prex) { int pos = str.find(prex); ; } bool endWith(const string & str,char* pr…
赋值 string 类型变量可以直接赋值 str = "string"; // str 是 一个 string 类型变量 //等价于 str.assign("string"); str = b; // b 可以是 string 类型 也可以是 char * 类型 也可以方便地添加字符串 str += 'c'; str += "string"; str += b;//b 可以是 string 类型 也可以是 char * 类型 读取 可以直接使用[…
#include <iostream> #include <string> using namespace std; // 初始化 void test01() { string s1; // 调用无参构造 创建一个空的字符串 , 'c'); // 使用 n 个字符 c 初始化 string s3("abcdefg"); // 使用字符串初始化 string s4(s3); // 使用一个 string 对象初始化另一个 string 对象(拷贝构造) cout…
Two-gram is an ordered pair (i.e. string of length two) of capital Latin letters. For example, "AZ", "AA", "ZA" — three distinct two-grams. You are given a string ss consisting of nn capital Latin letters. Your task is to fin…
1)代码展示: string是一个类,只不过封装了 char*  而且还封装了  很多的字符串操作函数 2)string类的初始化: string的构造函数 ²  默认构造函数: string();       //构造一个空的字符串string s1. ²  拷贝构造函数: string(const string &str);         //构造一个与str一样的string.如string s1(s2). ²  带参数的构造函数   string(const char *s);   …
string string封装了char*,管理这个字符串,是一个char*型的容器. string的相关操作 头文件 #include<string> string构造函数 string str;//创建一个空的字符串 string str1(str);//使用一个string对象初始化另一个string对象 string str2("hello");//使用字符串s初始化 string str3(3,'a');//使用n个字符c初始化 string基本赋值操作 stri…