#0文件读写:
#include<fstream>
fstream myfile("C:\\tsinghua\\软硕192\\example.txt", ios::in|ios::out||ios::app);
fstream可读可写,如果读完后再想写先
myfile.clear();
myfile<<"abcd";
这样即可在文件后追加"abcd"字符串。
#1:
string装换成字符
string a = "abc";
char *str = new char(a.size());
strcpy(str, a.c_str())
1.if(strncmp(s+cur-2*i+1,s+cur-i+1,i)==0)//strncpy的用法注意,第一个参数表示比较的第一个串首部,
//第二个参数表示第二个串首部,最后一参数表示串长度
2.strncpy(tmp1,a+i,(cur-i+1)/2);tmp1[(cur+i)/2-i+1]=0; //strncpy用法注意,第一个参数为复制到的串地址,第二个参数为被复制的串首部,最后一个参数表示串长度。
3. string的库
-
s1=s[i].substr(0,j); //substr第一个参数表示起始位置,后一个参数表示截取长度
-
s2=s[i].substr(j); //如果没有后一个参数则表示从起始位置一直截取到末尾
4.寻找子串:若无法找到则返回string::nops
否则返回其第一次出现的下标
s.find(s1)!=string::npos //在s串中寻找子串s1
5.set_union(x1.begin(),x1.end(),x2.begin(),x2.end(),inserter(x,x.begin())); //algorithm中的函数,最后一个参数为合成后放入的迭代器,这里放入x
set_intersection(x1.begin(),x1.end(),x2.begin(),x2.end(),inserter(x,x.begin())); //同上,取交集
6.int pos=lower_bound(a,a+n,x)-a; //这里还需要减去a才能得到数字的位置
1. strncpy: strncpy(substr,a+j,i); 这里substr为复制到的字符串,a+j为串头地址,i为要复制的子串长度。
2.strrev: strrev(revsub); 这样就行了,反转之后无需再做多余操作。
3.strstr strstr(char *s1,char *s2) 如果s2是s1的一个子串,返回其在s1中第一次出现的位置,否则返回NULL。
4.strchr(char *s,char c) 如果s中包含字符c,则返回一个s中第一次出现该字符的指针,否则返回NULL。
千万注意strncpy取字串时,需在所取字串末尾加'\0' !