STL之string篇
常用代码整理:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
bool startWith(const string &str,const char* prex)
{
int pos = str.find(prex);
return pos == ;
}
bool endWith(const string & str,char* prex)
{
int pos = str.rfind(prex);
return pos == str.length()-strlen(prex);
} int main()
{
char cstr[] = "abcdefg";
string str(cstr); //字节数
//length与size内部实现与值都是一样的,length只是沿用
//之前的c语言风格
printf("%d %d\n",str.length(),str.size()); //追加
string str2("");
str += str2; //方法1
printf("%s\n",str.c_str());
char cstr2[] = "";
str.append(cstr2); //方法2
printf("%s\n",str.c_str()); //子串,substr参数(int pos,int len);
str = str.substr(,strlen(cstr));
printf("%s\n",str.c_str()); //比较,返回值为int,为0相等
int ret = str.compare(str2);
printf("%d\n",ret); //查找
int pos = str.find("bcd",);
printf("pos = %d\n",pos); //替代,替代的长度与字符串的长度可以不相等
//对本身的修改
str.replace(,,str2);
printf("%s\n",str.c_str()); //插入
//对本身的修改
str.insert(,str);
printf("%s\n",str.c_str()); //请后缀判断
cout<<"test\n";
string str5("123abcdg321");
cout<<startWith(str5,"")<<" "<<startWith(str5,"")<<endl;
cout<<endWith(str5,"")<<" "<<endWith(str5,"")<<endl; return ;
}
例题有浙大PAT甲级1058
链接如下:
https://www.patest.cn/contests/pat-a-practise/1058
#include<iostream>
#include<cstring>
#include<cstdio>
#include<string.h>
#include<cmath>
#include<algorithm>
using namespace std; struct ST
{
int a;
int b;
int c;
}; ST add(ST st1,ST st2)
{
ST res;
int add = ;
res.c = (st1.c+st2.c)%;
add =(st1.c+st2.c)/;
res.b = (st1.b+st2.b+add)%;
add = (st1.b+st2.b+add)/;
res.a = st1.a+st2.a+add;
return res;
}
ST change(string str)
{
ST st;
int index1,index2;
index1 = str.find('.');
index2 = str.find('.',index1+);
string s1,s2,s3;
s1 = str.substr(,index1);
s2 = str.substr(index1+,index2-index1-);
s3 = str.substr(index2+,str.length()-index2-);
//printf("index=%d,%d\n",index1,index2);
//printf("s1=%s,s2=%s,s3=%s\n",s1.c_str(),s2.c_str(),s3.c_str());
st.a = atoi(s1.c_str());
st.b = atoi(s2.c_str());
st.c = atoi(s3.c_str());
return st;
}
int main()
{
char cs1[],cs2[];
scanf("%s%s",cs1,cs2);
string str1(cs1),str2(cs2);
ST res = add(change(str1),change(str2));
printf("%d.%d.%d\n",res.a,res.b,res.c);
return ;
}
STL之string篇的更多相关文章
- Java 性能优化之 String 篇
原文:http://www.ibm.com/developerworks/cn/java/j-lo-optmizestring/ Java 性能优化之 String 篇 String 方法用于文本分析 ...
- JDK源码学习--String篇(二) 关于String采用final修饰的思考
JDK源码学习String篇中,有一处错误,String类用final[不能被改变的]修饰,而我却写成静态的,感谢CTO-淼淼的指正. 风一样的码农提出的String为何采用final的设计,阅读JD ...
- 通过Java字节码发现有趣的内幕之String篇(上)(转)
原文出处: jaffa 很多时候我们在编写Java代码时,判断和猜测代码问题时主要是通过运行结果来得到答案,本博文主要是想通过Java字节码的方式来进一步求证我们已知的东西.这里没有对Java字节码知 ...
- redis 五大数据类型之string篇
一: 1:string(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value. string类型是二进制安全的.意思是redis ...
- STL的string和wstring
STL有字符串处理类——stirng和wstring,但是用的时候会觉得不是很方便,因为它不能像TCHAR一样根据定义的宏在char类型字符串和wchar_t进行转换,总不能因为程序要Unicode就 ...
- C++之STL之string
/*C 语言中字符数组一般会采用char str[]来存放,但是显得会比较麻烦,C++在stl中加入了string类型,对字符串常用的功能进行了封装,操作起来比较方便*/#include<cst ...
- POJ 3096 Surprising Strings(STL map string set vector)
题目:http://poj.org/problem?id=3096 题意:给定一个字符串S,从中找出所有有两个字符组成的子串,每当组成子串的字符之间隔着n字符时,如果没有相同的子串出现,则输出 &qu ...
- Gengxin讲STL系列——String
衔接上一篇引导. 作为第一篇博客,就要大气一点. 可我好像并不知道怎么才能让自己的博客大气一点= =: 明天是我生日,自己先买个中文域名庆祝了一下…… 好了,废话说完了,结果博客也没大气到哪去……,正 ...
- JDK源码学习--String篇(三) 存储篇
在进一步解读String类时,先了解下内存分配和数据存储的. 数据存储 1.寄存器:最快的存储区,位于处理器的内部.由于寄存器的数量有限,所以寄存器是按需分配. 2.堆栈:位于RAM中,但是通过堆栈指 ...
随机推荐
- Codeforces Round #254 (Div. 1) C DZY Loves Colors
http://codeforces.com/contest/444/problem/C 题意:给出一个数组,初始时每个值从1--n分别是1--n. 然后两种操作. 1:操作 a.b内的数字是a,b内 ...
- noip模拟赛 蒜头君的坐骑
分析:标准的棋盘dp问题. 如果没有技能,那么就很好做了,相当于传纸条的做法.有了技能的限制,我们就要加上一维表示用了多少次技能,这个时候转移就要用到dfs了,而且不能用填表法,要用刷表法,从当前位置 ...
- jQuery对象是怎么创建的
一.jQuery源码 在jQuery中,$是jQuery的别名,执行“$()”就是执行“jQuery()”,执行“$()”返回的是一个jQuery对象,在源码中,它是这样定义的: ... var jQ ...
- Bellman_ford 算法 Currency Exchange POJ1860
Bellman_ford算法用于寻找正环或者负环! 算法导论: 24.1 The Bellman-Ford algorithm The Bellman-Ford algorithm solves th ...
- JNA调用库文件
最近项目中要集成厂商的卡口摄像头,需要通过jna调用库函数接收卡口相机抓拍的过车数据.本文记录了Java调用C语言动态库(jna)的调用方式.回调函数.结构体等. JNA全称Java Native A ...
- 29、Java并发性和多线程-非阻塞算法
以下内容转自http://ifeve.com/non-blocking-algorithms/: 在并发上下文中,非阻塞算法是一种允许线程在阻塞其他线程的情况下访问共享状态的算法.在绝大多数项目中,在 ...
- C#趣味程序---九九乘法表
using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { for ...
- java线程和线程池的使用
java线程和线程池 一.创建多线程的方式 java多线程非经常见.怎样使用多线程,怎样创建线程.java中有两种方式,第一种是让自己的类实现Runnable接口.另外一种是让自己的类继承Thread ...
- oracle11g 手工建库步骤
#create oracle instance parameter vi initkevin.or db_name='kevin' memory_target=0 sga_max_size=5G sg ...
- 在项目开发中使用Git版本号控制工具以提高效率
安装Git(linux centos平台) 源代码方式安装 1.装依赖 $ yum install curl-devel expat-devel gettext-devel openssl-devel ...