NOTE:
eclipse支持C++11:g++ -std=c++11
增加编译选项,g++ 版本 4.8.1 及以上支持c++11
字符串字面值是 const char *
类型,不是 string 类型。
string
的输入运算符自动忽略开头空白,从真正字符读起,直到遇见下一次空白(空格、换行、制表等)。;getline
会原样保留空白。(遇换行符都会结束当次输入)
头文件中最好不用 using 声明,以免造成冲突。
string
对象会自动忽略开头空白。
范围
for语句 和
auto关键字,拷贝或引用
str`的每个字符。
for(auto &c:str)
{
c = 'X';
}
尽量使用C++中的对应头文件。
decltype(s.size()) size=0;
来声明string
尺寸类型; 使用 assert 来断言下标未越界。
using s_size = string::size_type;
等价于 typedef string::size_type size
类型定义
string
初始化
string s;
默认初始化,空
string s2(s1);
s2是s1的副本
string s2 = s1;
与上等价
string s3("val");
副本,除了最后的空字符
string s3 = "val";
与上等价
string s4(n,'c')
n个 c 字符组成s4
使用等号初始化一个变量执行拷贝初始化,否则执行直接初始化。
string 对象上的操作
basic_istream<char>& getline(basic_istream<char>&, string&, char);
未遇到边界时读取一行,否则读到边界并抛弃边界符。
basic_istream<char>& getline(basic_istream<char>&, string&);
上面边界符号为 ‘\n’
的情况。
os<<s;
将s
写到输出流os
中,返回os
.
is>>s;
从is
中读取字符串赋给s
,字符串以空白分隔,返回is
.
s.empty()
s.size()
字符个数
s[n]
第n个字符的引用,从0开始
+、=、==、!=、<、<=、>、>=
字符处理 #include <cctype>
isalnum(c)
字母或数字时为真
isalpha(c)
字母
iscntrl(c)
控制字符
isdigit(c)
数字
isgraph(c)
不是空格但可打印
islower(c)
小写字母
ispunct(c)
标点符号
isspace(c)
空白(空格、横(纵)向制表符、回车符、换行符、进纸符)
isprint(c)
可打印(空格或可视)
isupper(c)
大写字母
isxdigit(c)
十六进制数字
tolower(c)
转小写
toupper(c)
转大写
C++string类常用函数
C++string类常用函数 > http://www.cppblog.com/lmlf001/archive/2006/04/19/5883.html