Chinaunix首页 | 论坛 | 博客
  • 博客访问: 382915
  • 博文数量: 61
  • 博客积分: 1546
  • 博客等级: 中尉
  • 技术积分: 708
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-22 20:07
文章分类

全部博文(61)

文章存档

2011年(61)

分类: C/C++

2011-06-18 14:50:25

标准库string类型(需要包含头文件#include )
构造函数:
string s1
string s2(s1);
string s3("name");
string s4(10, 'a');

string对象的读写
从标准输入读取 cin >> s1;
1. 读取并忽略开头所有的空白字符(空格、换行符、制表符)
2. 读取字符直到再次遇到空白字符,终止读取

读取整行,使用getline(cin, string)
该函数从输入流的下一行读取,并保存结果到string对象中,函数返回时会丢弃换行符
但是在VC6.0中对该函数支持不是很好
while(getline(cin, s))
{
    cout << s << endl;
}
输入 a ----回车换行 
没有显示 
输入 b ----回车换行 
显示 a
输入 c ----回车换行 
显示 b

但在VS2005中运行正常:

string的size和empty操作
size()返回string对象中字符的个数
empty()返回string对象是否为空,也可以使用size()==0来判断

string::size_type类型
size_type定义为unsigned类型,可以保证足够大能够存储任意string对象的长度

string对象获取字符
string类型可以通过下标操作符访问string对象中的单个字符,如
string str("some string");
for(string::size_type index=0; index
{
    cout << str[index] << endl;
}
下标操作可作左值,如:
str[index] = '*';

string对象中字符处理函数(需要头文件cctype,查了MSDN,使用locale头文件也可以)
isalnum(c)判断是否为数字或字母
isalpha(c)判断是否是字母
iscntrl(c)判断是否是控制字符
isdigit(c)判断是否是数字
isgraph(c)判断是否是空格
islower(c)判断是否是小写字母
isprint(c)判断是否是可打印字母
ispunct(c)判断是否是标点符号
isspace(c)判断是否是空白字符
isupper(c)判断是否是大写字母
isxdigit(c)判断是否是十六进制数
tolower(c)如果是大写字母,则返回小写字母形式,否则直接返回c
toupper(c)如果是小写字母,则返回大写字母形式,否则直接返回c

建议采用C标准库头文件的C++版本
C标准库头文件命名形式为name.h
C++版本则命名为cname,后面少了h,而在前面多了个c

阅读(2941) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~