sscanf()
#include<cstdio>
从一个字符串中读进与指定格式相符的数据
学习资料分享:字符串处理时候的读入指定数据
经常碰到一串固定格式字符串中有需要处理的数据,比如foj1146这样的0:23:21 -:–:–
sscanf(s.c_str(),"%d:%d:%d",&hh,&mm,&ss);
sprintf()
#include<cstdio>
把格式化的数据写入某个字符串。
int num;
char s[1000];
sprintf(s,"%d",num);
reserve()
#include<string>
翻转字符串
超方便 比如foj1171 分分钟秒
reverse(s.begin(),s.end());
string s转char c[]
strcpy(c,s.c_str());
char c[] 转 string s
s = c;
next_permutation()
#include<algorithm>
比当前char型数组排序大的下一种排序
next_permutation(c,c+strlen(c));
c[]=”abcd”变为 abdc
memset()
#include<cstring>
对于对int之类的数组,只能用memset对其初始化为0或-1。
如:int a[]; memset(a,0,sizeof(a));
而对于char型,可以赋任何字符。
如:char a[]; memset(a,'0',sizeof(a));
fill()
#include<iostream>
把那一块单元赋成指定的值
char s[100];
fill(s,s+100,'a');
如果用memset给d[100]赋值1会出事 这时候就应用fill函数
int d[100];
fill(d,d+100,1);
getline()
#include<string>
很常用的一个函数。
string s;
getline(cin,s);
默认是换行为分隔符。
也可以用其他字符作为分隔符,如用空格作为分隔符。
string s;
getline(cin,s,' ');
find()
#include<string>
找到则返回第一个字符的索引
没找到则返回 string::npos