使用名字空间成员的简单方法:
using namespace ::name;例如:using std::cin;
头文件不应包含using声明
标准库类型string:(需要带有头文件#include<string>)
string对象的初始化方式:
string s1;(默认空字符串)
string s2=s1;
string s3="asfg";(拷贝初始化)(也可:string s3("asfg");直接初始化)
string s4(10,'x');(s4=="xxxxxxxxxx")
string的操作:
os<<s 将s写入输出流os中并返回os
is>>s 将is中字符串赋给s并返回is
getline(is,s)从is中读取一行赋给s并返回is
s.empty() 返回s是否为空
s.size() 返回s中字符个数
s[n] 返回s中下标为n的字符的引用,原理同数组
>,<,==,<=,>= 比较两字符串的“大小”,按字典顺序
使用cin,cout可以直接读写s对象,从第一个字符读起到第一个空白(即只能读取一个“单词”),如果希望完整读取:
string str;
while(cin>>str){
/*********/}
或者使用getline读取一整行(换行符未存进字符串对象):
string str;
while(getline(cin,str)){
/*********/}
注意:str.size()返回值类型为string::size_type类型,通过auto可以获取字符串长度:
auto len=str.size();
第一个相异字符决定两字符串"大小",若两字符串仅长度不一,则长的“大于”短的
注意:字符串字面值之间不可直接相加,‘+’两端至少有一项是string对象
cctype头文件中的字符处理函数:
char s;
isalnum(s); s是字母或数字为真
isalpha(s); s是字母时为真
iscntrl(s); s是控制字符是为真
isdigit(s); s是数字时为真
isgraph(s); s不是空格但是可以打印时为真
islower(s); s是小写字母时为真
isprint(s); s是可打印字符时为真
ispunct(s); s是标点符号时为真
isspace(s); s是空白时为真
isupper(s); s是大写字母时为真
isxdigit(s); s是十六进制数字时为真
tolower(s); 输出小写字母
toupper(s); 输出大写字母
范围for语句:(c++11)
类似Java的foreach语句,格式为: for(declarion:expression),其中expression是一组序列
std::string str("Hello World");
for(auto &c:str){(使用引用类型改变了string的值)
c=toupper(c);
std::cout<<c;}
标准库类型vector: