`
xitong
  • 浏览: 6190887 次
文章分类
社区版块
存档分类
最新评论

STL------string的简单使用

 
阅读更多
在C语言中我们用char的结构体来定义一个数组,如char s[50];但是char数组定义之后,数组大小就不能改变了,在C++ STL中提供了一个方便的string类型来表示字符串,且string的长度是可变的。
string类型常用函数:
1.构造函数
2.size函数返回字符串大小
3.compare函数比较字符串
4.insert函数可在任意位置插入数据
5.append函数字符串的连接、尾部追加
6.push_back函数在尾部添加字符
7.empty函数判断字符串是否为空
8.find函数在字符串中查找
9.substr函数求子字符串
10.erase函数擦除指定的字符
11.replace函数替换字符
12.begin函数返回指向字符串首部的迭代器指针
13.end函数返回指向字符串尾部的迭代器指针(即'\0')
14.getline函数读入一行字符串(和cin的getline函数不同)
15.c_str函数将string转换成char*(通过strcpy赋值)

字符串的输入输出

//ioput.cc
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s1("Hello World...");
    cout << s1 << endl;

    string s2 = s1;
    cout << s2 << endl;

    string s3;
    cout << "please enter a string:";
    cin >> s3;
    cout << s3 << endl;
}

值得注意的是:当要求输入字符串s3时,输入时不要出现空格,否则字符串会被截断。如输入Hello World则输出的s3为Hello

find函数和substr函数的结合使用

//getstr.cc
#include <iostream>
#include <string>
using namespace std;

int main()
{
    //找出子字符串index.html
    string s("GET /index.html HTTP/1.1");
    string::size_type start = s.find(" ", 0);
    string::size_type end = s.find(" ", start + 1);
    string s1 = s.substr(start + 2, end - start - 1);
    cout << s1 << endl;

    return 0;
}


begin和end函数的使用

//useiterator.cc
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s("www.sina.com.cn");
    string::iterator itr1 = s.begin();
    string::iterator itr2 = s.end();

    for(string::iterator itr = itr1; itr < itr2; itr++)
    {
        cout << *itr << endl;
    }

    return 0;
}


分享到:
评论

相关推荐

    effective stl stl 技巧

    条款13:尽量使用vector和string来代替动态分配的数组 条款14:使用reserve来避免不必要的重新分配 条款15:小心string实现的多样性 条款16:如何将vector和string的数据传给传统的API 条款17:使用“交换技巧...

    Effictive STL CHM中文版

    条款13: 尽量使用vector和string来代替动态申请的数组 条款14: 用reserve来避免不必要的内存重新分配 条款15: 当心string的实现中的变化 条款16: 如何将vector和string的数据传给传统的API 条款17: 用“交换技巧...

    Effective STL(中文)

    在删除选项中仔细选择 条款10:注意分配器的协定和约束 条款11:理解自定义分配器的正确用法 条款12:对STL容器线程安全性的期待现实一些 vector和string 条款13:尽量使用vector和string来代替动态...

    effective stl 中文 pdf

    怎么使用stl 这里几乎都有说明 条款1: 仔细选择你要的容器 条款2: 小心对“容器无关代码”的幻想 条款3: 使容器里对象的拷贝操作轻量而正确 条款4: 用empty来代替检查size是否为0 条款5: 尽量使用范围成员函数...

    CString,string,char*之间的转换

    string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的;char*是从学习C语言开始就已经和我们形影不离的了,有许多API都是以char*作为参数输入的。所以熟练掌握三者之间的转换十分必要。 以下我用简单的...

    STL:PHP的简单类型库

    STL的主要功能之一是,每个对象每个值都有一个实例String::get('Test') === String::get('Test') 。 通过这种方法,可以很容易地将对象存储在例如SPLObjectStorage或依赖于对象哈希的类似容器中。 所有对象都是不...

    C++轻量级通用插件框架源码

    本插件机制采用C++实现,用到了C++的RTTI机制和少量Windows API函数,没有使用MFC、ATL、STL,没有使用LIB文件,外部依赖文件少,没有使用VC++特殊编译指令。 编译环境为Visual C++ 6.0/2003/2005/2008/2010,其他...

    自己写的ac自动机,STL实现

    相当给力,头文件中附带了简单的使用方法,使用istream当接口,因此你可以传入stringstream或fstream,甚至可以自己派生istream再传入,支持全文查找和增量查找两种模式,有问题可以联系我

    自编MStirng(类似std::string)以及配套的4种iterators

    自己编写的string类,名字叫做MString。并且编写了配套的iterator、const_iterator、reverse_iterator、const_reverse_iterator。完全支持stl的各种算法,包括支持insert_iterator()转换。编写它的目的不是为了使用...

    OTL+代码+实例+帮助

    开发效率高,起码比ADO.net使用起来更简单,更简洁 d. 部署容易,不需要ADO组件,不需要.net framework 等 缺点: a. 只有C++才可以使用她 b. 说明以及范例不足(已附带了686个实例) This document describes ...

    C++实现56dxw短信验证码WebService接口--

    -s 不要使用STL代码 -t 文件名,指定type map文件,默认为typemap.dat -e 禁止为enum成员加上名空间前缀 -C 仅生成客户端代码 -S 仅生成服务器端代码 -L 不要产生soapClientLib.c和soapServerLib.c文件 -c 产生纯C...

    要求综合运用 STL,实现一个简单的垃圾邮件过滤程序

    本次作业要求综合运用 STL,实现一个简单的垃圾邮件过滤程序。 2、要求 (1)输入:您的执行程序必须能够读入三个参数。 第一个参数为垃圾邮件关键字文件名称 第二个参数为输入的电子邮件文件名称 第三个参数为...

    C++ string类的隐式共享写时拷贝的实现及设计要点

    在C++中,为了方便字符串的使用,在STL中提供了一个string类。该类维护一个char指针,并封装和提供各种的字符串操作。  一、为什么要实现隐式公享写时拷贝  试想一下,如果我们要自己实现一个string类,简单的...

    picojson:C ++中仅标头文件的JSON解析器序列化器

    经常使用STL(数组使用std :: vector表示,对象使用std :: map表示) 提供拉接口和流(基于事件)接口 使用pull接口读取JSON 有多种方法可以使用picojson的pull(类似DOM)接口。 最简单的方法是使用两参数parse...

    雨水leetcode-Competitive-Coding:包含来自hackerrank、codechef、leetcode、intervie

    {涵盖了地图(stl)和回文逻辑的最佳使用} 2)句子中单词的出现 - 简单 - Coding Ninjas - {Learned to use 'getline','stringstream','map','itreating over a map'} 3)从char数组中提取唯一词-Easy-Coding Ninjas...

    sk-config:使用Spirit X3的C ++配置文件解析器

    有用的,易于理解的错误报告: in .\sample\sample1.conf, line 10: expected a string group 0 {here -------^对于大多数解析器,简单的API都会抽象出Spirit的详细信息。 ...,但如果需要,可提供对基础Spirit解析...

    Tinyxml 源代码(VC6 & VS2005)

    如果使用STL,TinyXML会使用std::string类,而且完全支持std::istream,std::ostream,operator和operator&gt;&gt;。许多API方法都有 ‘const char*’和’const std::string&’两个版本。 如果被编译成不使用STL,则任何...

    jsonhandle:JsonHandle是用于C ++的非常简单的JSON接口。 它支持从char缓冲区以及STL字符串和流进行编码和解码。 键入很像JavaScript中的鸭子键入。 根据使用情况,句柄在类型之间进行透明转换。 旨在有效使用内存并提高性能

    JsonHandle是用于C ++的非常简单的JSON接口。 它支持从char缓冲区以及STL字符串和流进行编码和... 对象:使用[]运算符或at()方法使用char * ot std :: string索引进行访问。 如果使用数字索引,则将返回该索引处的

    utfcpp:具有可移植方式的C ++的UTF-8

    UTF8-CPP:具有C ++的UTF-8可移植方式 介绍 ... 对于以前使用过STL算法和迭代器的任何人,它应该简单易用。 该代码可免费用于任何目的-签出。 在过去的十年中,该库在商业和开源项目中已被大量使用,并

    C++大学教程,一本适合初学者的入门教材(part1)

    1.15 简单程序:打印一行文本 1.16 简单程序:两个整数相加 1.17 内存的概念 1.18 算术运算 1.19 判断:相等与关系运算符 1.20 新型头文件与名字空间 1.21 有关对象的思考 小结 术语 自测练习 自测练习答案 ...

Global site tag (gtag.js) - Google Analytics