陌生用法及一些盲点

#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的库

  1. s1=s[i].substr(0,j); //substr第一个参数表示起始位置,后一个参数表示截取长度

  2. 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'   !

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值