最近没啥可写的  这里写下做的STL小练习 作为记录

去除指定字符串中的空格

获取文件名并根据名字创建临时文件,以TMP后缀结尾,已经为TMP后缀结尾文件则创建以XXX后缀结尾文件

读取一行输入内容 并将单词翻转打印

// 1111.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <string>
#include <iostream>
#include <algorithm> using namespace std; string strArray[5] = {"prog.dat","mydir","hello.","oops.tmp","end.dat"}; string TrimSpace(string str)
{ string::size_type i; while( (i = str.find(" ")) != string::npos )
{
str.replace(i,1,"");
} string::iterator newEnd = remove(str.begin(),str.end(),' ');
str.erase(newEnd,str.end()); return str;
} void ReversPrintWordInLine()
{
const string delims(" \t,.;");
string line;
while(getline(cin,line))
{
string::size_type begIdx,endIdx;
begIdx = line.find_first_not_of(delims);
while(begIdx != string::npos)
{
endIdx = line.find_first_of(delims,begIdx);
if(endIdx == string::npos)
{
endIdx = line.length();
}
for(int i = endIdx-1;i >= static_cast<int>(begIdx);--i)
{
cout << line[i];
}
cout << ' '; begIdx = line.find_first_not_of(delims,endIdx);
}
cout << endl;
}
} void CreateTmpFilename()
{ string filename,basename,extname,tmpname;
const string suffix("tmp"); for(int i = 0;i < 5;++i)
{
string::size_type idx = strArray[i].find(".");
if(idx == string::npos)
{
tmpname = strArray[i]+"."+suffix;
}else
{
basename = strArray[i].substr(0,idx);
extname = strArray[i].substr(idx+1);
if(extname.empty())
{
tmpname = strArray[i];
tmpname += suffix;
}else if(extname == suffix)
{
tmpname = strArray[i];
tmpname.replace(idx+1,extname.size(),"xxx");
}else
{
tmpname = strArray[i];
tmpname.replace(idx+1,suffix.size(),suffix);
}
} cout << strArray[i] << " ==> " << tmpname << endl;
}
cout << endl;
} int _tmain(int argc, _TCHAR* argv[])
{
string str = TrimSpace(" sdfsf sdfs sdf ");
cout << "remove space " << str << endl << endl; CreateTmpFilename(); ReversPrintWordInLine(); return 0;
}

  

stl string 小练习的更多相关文章

  1. 深入剖析 linux GCC 4.4 的 STL string

    转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Wri ...

  2. 格式字符串分配stl::string

    代码非常easy,不解释,直接在代码: #include <cstdio> #include <cstdarg> #include <iostream> using ...

  3. 浅谈C++ STL string容器

    浅谈C++ STL string容器 本篇随笔简单讲解一下\(C++STL\)中\(string\)容器的使用方法及技巧. string容器的概念 其实\(string\)并不是\(STL\)的一种容 ...

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

    参考<21天学通C++>第15和16章节,在对宏和模板学习之后,开启对C++实现的标准模板类STL进行简介,同时介绍简单的string类.虽然前面对于vector.deque.list等进 ...

  5. 转C++之stl::string写时拷贝导致的问题

    前几天在开发某些数据结构到文件的 Dump 和 Load 功能的时候, 遇到的一个 bug . [问题复现] 问题主要出在 Load 过程中,从文件读取数据的时候, 直接使用 fread 的去操作 s ...

  6. stl string

    10.2.1 STL的string 1String概念 ²  string是STL的字符串类型,通常用来表示字符串.而在使用string之前,字符串通常是用char*表示的.string与char*都 ...

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

    本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Write技术. 平台:x86_64-redhat-linux gcc ver ...

  8. STL - string(典型操作demo)

    1String概念  string是STL的字符串类型,通常用来表示字符串.而在使用string之前,字符串通常是用char*表示的.string与char*都可以用来表示字符串,那么二者有什么区别呢 ...

  9. STL——string

    C++之string类型详解 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够.字符串长度等等,而且作为一个泛型类出现,他集成的操作函 ...

随机推荐

  1. MacBook Pro 一月使用体验

    从 2013 年开始,就特别想买 MBP,终于在 2015 年的尾巴用上了 MBPR.原本是要在使用一周后写一份使用体验的,但因为懒,现在拖到一个月了,刚好现在也是2016年的一月,就把标题改成一月使 ...

  2. DevExpress 数据与展示的不同

    有时候我们需要详细展示数据源的含义,这时候就需要用到 RepositoryItemLookUpEdit 展示: 代码详情: ColumnData = new DevExpress.XtraGrid.C ...

  3. 2. select下拉框获取选中的值

    1.获取select选中的value值: $("#select1ID").find("option:selected").val();  --select1ID ...

  4. DDD-002

    项目实践:http://www.cnblogs.com/daoqidelv/p/7499662.html#_label0 https://www.cnblogs.com/lonelyxmas/p/79 ...

  5. leetcode122

    public class Solution { public int MaxProfit(int[] prices) { var list = new List<KeyValuePair< ...

  6. JSON解析工具比较,主要GSON和FastJSON

    JSON解析工具比较,主要GSON和FastJSON 一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确 ...

  7. air 桌面应用发布后可以删除的文件

    ****\Adobe AIR\Versions\1.0 下的文件夹Resources,可以整个删除 ***META-INF\AIR目录下的application.xml配置文件可修改initialWi ...

  8. Java多线程之使用ATM与柜台对同一账户取钱

    钱数要设置成静态的变量,两种取钱方式操作的是同一个银行账户! 废话不多说,直接上代码.注释写的都很详细!!! package com.thread.multi2; public class Bank ...

  9. 批量部署ssh私钥认证

    vim  batch_sshkey.sh #!/bin/bashcd /rootcat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keysfor ...

  10. 【337】Text Mining Using Twitter Streaming API and Python

    Reference: An Introduction to Text Mining using Twitter Streaming API and Python Reference: How to R ...