记录自己的C语法学习/上岸记录(许愿大厂后台offer)
本帖主要记录自己之前对C学习模糊的地方(只要学习就会更新)
4/17
1.字符串
//C++ primer 3.2+9.5开始
String 表示可变长的字符序列,使用string之前必须首先包含string头文件。
下面介绍最常用的string操作:
1.1.1定义和初始化:
string s1;
string s2(s1);
string s2=s1;
string s3("value")
string s3="value";
string s4(n,'c');
1.1.2读写操作
cin,cout;
getline读取一整行:有时我们希望保留输入时候的空白符,采用getline()读取,读到换行符为止,注意存入对象的时候不存入换行符
1.1.3string相加
两个string对象可以直接相加
两个字面值不能直接相加
string对象与字面值混在一起的时候,需要保证“+”两边至少有一个string对象
1.2.1改变某个字符的特性
在cctype头文件中定义了一系列的标砖库函数,在这里我只列出我之前遇到过的(记不住啊啊啊
isalnum(c)//当c是字母或数字时为真
isalpha(c)//当c是字母为真
islower(c)//当c是小写字母时为真
issupper(c)//当c时大写字母为真
ispunct(c)//当c是标点符号为真
isspace(c)//当c是空白为真
tolwer(c)//输出小写字母
toupper(c)//输出大写字母
1.2.2处理字符
for(auto c:str)
for(auto &c: str) //c是引用,赋值将改变str中的值
利用下标只处理某些字符,注意下标合法性
1.3.2额外的string操作
构造string的方法
string s(cp,n); //s是cp指向的数组中前n个字符的拷贝
string s(s2,pos2);// s是string s2从下标pos2开始的字符的拷贝
string s(s2,pos2,len2);//从下标pos2开始拷贝len2个字符
注意 如果位置大于size,则构造函数抛出一个out_of_range异常
substr操作
s.substr(pos,n);//从pos开始的n个字符的拷贝,pos默认0