常用代码整理:

  

#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篇的更多相关文章

  1. Java 性能优化之 String 篇

    原文:http://www.ibm.com/developerworks/cn/java/j-lo-optmizestring/ Java 性能优化之 String 篇 String 方法用于文本分析 ...

  2. JDK源码学习--String篇(二) 关于String采用final修饰的思考

    JDK源码学习String篇中,有一处错误,String类用final[不能被改变的]修饰,而我却写成静态的,感谢CTO-淼淼的指正. 风一样的码农提出的String为何采用final的设计,阅读JD ...

  3. 通过Java字节码发现有趣的内幕之String篇(上)(转)

    原文出处: jaffa 很多时候我们在编写Java代码时,判断和猜测代码问题时主要是通过运行结果来得到答案,本博文主要是想通过Java字节码的方式来进一步求证我们已知的东西.这里没有对Java字节码知 ...

  4. redis 五大数据类型之string篇

    一: 1:string(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value. string类型是二进制安全的.意思是redis ...

  5. STL的string和wstring

    STL有字符串处理类——stirng和wstring,但是用的时候会觉得不是很方便,因为它不能像TCHAR一样根据定义的宏在char类型字符串和wchar_t进行转换,总不能因为程序要Unicode就 ...

  6. C++之STL之string

    /*C 语言中字符数组一般会采用char str[]来存放,但是显得会比较麻烦,C++在stl中加入了string类型,对字符串常用的功能进行了封装,操作起来比较方便*/#include<cst ...

  7. POJ 3096 Surprising Strings(STL map string set vector)

    题目:http://poj.org/problem?id=3096 题意:给定一个字符串S,从中找出所有有两个字符组成的子串,每当组成子串的字符之间隔着n字符时,如果没有相同的子串出现,则输出 &qu ...

  8. Gengxin讲STL系列——String

    衔接上一篇引导. 作为第一篇博客,就要大气一点. 可我好像并不知道怎么才能让自己的博客大气一点= =: 明天是我生日,自己先买个中文域名庆祝了一下…… 好了,废话说完了,结果博客也没大气到哪去……,正 ...

  9. JDK源码学习--String篇(三) 存储篇

    在进一步解读String类时,先了解下内存分配和数据存储的. 数据存储 1.寄存器:最快的存储区,位于处理器的内部.由于寄存器的数量有限,所以寄存器是按需分配. 2.堆栈:位于RAM中,但是通过堆栈指 ...

随机推荐

  1. HDU 1274 递归拼接字符串

    题目大意: 根据所给的数字,表示其相连的字符的输出个数,或是下一个括号中的所有字符的输出个数 每一个相互对应的 '(' 和 ')' 中的所有字母均作为一组数据处理 在每一次dfs过程中都处理好这样一个 ...

  2. hdu 4670 树的分治-求点对的个数

    /* 树的分治 因为树的点权值可达到10^15,注意手动扩栈,还有int64 题意:给你一棵树,给你一些素数,给你每个点一个权值且每个权值均可由这些素数组成.现在定义任意任意两点的价值为他们路径上的权 ...

  3. jQuery动态添加表格1

    用jquery的append方法在指定行的后面新增一行tr,会把新增的行的html追加到指定行的html里面 content +="<tr><td>123</t ...

  4. java数组知识总结(一)//按类

    在线api  目录: 零/数组(基本元素) 1.  声明一个数组 2.  创建一个数组 3.  数组名.length 4.  数组的引用 一/java.lang.reflect.Array     / ...

  5. - > 动规讲解基础讲解五——最长公共子序列问题

    一些概念: (1)子序列: 一个序列A = a1,a2,……an,中任意删除若干项,剩余的序列叫做A的一个子序列.也可以认为是从序列A按原顺序保留任意若干项得到的序列. 例如:   对序列 1,3,5 ...

  6. 奇妙的滚动css+html

    <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title> ...

  7. MySQL: 改变Homebrew安装MySQL/MariaDB的数据库文件目录

    1. brew install mariadb 2. mysql_install_db --verbose --user=$USER --basedir=/usr/local/Cellar/maria ...

  8. InnoDB: Error: Table &quot;mysql&quot;.&quot;innodb_table_stats&quot; not found.

    1,Mysqldump的时候报错例如以下: 2014-05-05 14:12:37 7f004a9a2700 InnoDB: Error: Table "mysql"." ...

  9. 从一个input点击引起的思考

    一个input或者select标签都是有属于自己的disabled属性的,这个属性很少被使用,但是我们在项目实际开发的过程中也会遇到,比如我选择之后就让他置灰不可以变动了,那么久可利用js动态设置.对 ...

  10. 11082 完全二叉树的种类 O(n) 卡特兰数

    11082 完全二叉树的种类 时间限制:800MS  内存限制:1000K提交次数:0 通过次数:0 题型: 编程题   语言: G++;GCC;VC Description 构造n个(2<=n ...