处理string对象中的字符
2016-08-19 17:30
295 查看
标准库类型
(1)定义和初始化string对象:
(2)string对象上的操作:
在cctype头文件中定义了一组标准库函数处理string对象中的字符:
如果想处理string对象中的每个字符时,可以使用范围for(range for)语句。
语法形式是
其中:
exp是一个对象,用于表示一个序列;
dec部分定义了一个变量,该变量用于访问exp序列中的基础元素(例如一个string对象中的字符)。
每次循环,将exp下一个元素的值赋给dec
举例说明:
运行结果:
这里需要注意的是,范围for语句是C++11新标准提供的语句,老版本的编译器会报错。
string表示可变长的字符序列,使用
string类型必须包含string头文件,
string定义在命名空间std中。
(1)定义和初始化string对象:
string s1; //默认初始化s1是一个空串 string s2(s1); //s2是s1的副本 string s3 = s1; //等价于s3(s1),s3是s1的副本 string s4("value"); //s4是字面值"value"的副本(除了字面值最后的空字符) string s5 = "value"; //等价于s5("value"),s5是字面值"value"的副本 string s6(n , 'c'); //吧s6初始化为连续的n个字符c组成的串
(2)string对象上的操作:
os<<s //s写到输出流os中,返回os is>>s //is中读字符串赋给s,字符串以空白分隔,返回is getline(is,s) //从is中读取一行到s,返回is s.empty() //s为空返回true,否则返回false s.size() //返回s中字符的个数 s //返回s中第n个字符的引用,位置n从0开始计算 s1+s2 //返回s1和s2连接后的结果 s1=s2 //s2赋值给s1 s1==s2 //如果s1和s2中所含字符完全一样,则相等 s1!=s2 //否则不等(对字母大小写敏感) <,<=,>,>= //按照字符在字典中的顺序比较大小(对字母大小写敏感)
在cctype头文件中定义了一组标准库函数处理string对象中的字符:
isalnum(c) //当c是字母或数字时为真 isalpha(c) //当c是字母时为真 iscntrl(c) //当c是控制字符时为真 isdigit(c) //当c是数字时为真 isgraph(c) //当c不是空格但可以打印时为真 islower(c) //当c是小写字母时为真 isprint(c) //当c是可以打印的字符时为真(即c是空格或c具有可视形式) ispunct(c) //当c是标点符号时为真(即c不是控制字符、数字、字母、可打印空白中的一种) isspace(c) //当c是空白时为真(即c是空格、横向制表符、纵向制表符、回车符、换行符、进纸符中的一种) isupper(c) //当c是大写字母时为真 isxdigit(c) //当c是十六进制数字时为真 tolower(c) //如果c是大写字母,输出对应的小写字母;否则原样输出c toupper(c) //如果c是小写字母,输出对应的大写字母;否则原样输出c
如果想处理string对象中的每个字符时,可以使用范围for(range for)语句。
语法形式是
for(dec : exp) statement
其中:
exp是一个对象,用于表示一个序列;
dec部分定义了一个变量,该变量用于访问exp序列中的基础元素(例如一个string对象中的字符)。
每次循环,将exp下一个元素的值赋给dec
举例说明:
//这里使用toupper函数将指定的string对象中的字符序列全部转化为大写形式 //并使用ispunct函数统计标点符号的个数 #include <iostream> #include <string> using namespace std; int main() { int a = 0; //用于统计标点符号的个数 string str("we are capital letters!!!"); cout << "原语句:" <<str<< endl; for(auto &c : str) { if(ispunct(c)) a+=1; //统计标点符号的个数 c = toupper(c); //将小写字母转化成大写字母 } cout << "转化后的语句: " <<str<< endl; cout << "标点符号个数: " <<a<< endl; return 0; }
运行结果:
这里需要注意的是,范围for语句是C++11新标准提供的语句,老版本的编译器会报错。
相关文章推荐
- string对象处理字符(C++)
- string对象中字符的处理函数
- 逐梦C++补遗篇之四:string对象中字符的处理
- (13)处理string对象中的字符
- C++ primer 三 处理string对象中的字符
- C++中处理string对象的字符
- string 对象中字符的处理
- string对象中字符的处理
- C++中处理string对象的字符
- string对象中字符的处理
- 处理Hibernate中Pojo对象String属性不能映射Sqlserver2005 text类型字段问题 .
- JNI学习笔记:(1)开篇(2)本地代码访问Java代码 (3)本地方法取得Java属性/调用java方法 (4)本地代码创建Java对象(包括javaString) (5) 本地方法处理java数组
- JavaScript_学习 6_字符串处理,String对象的字符串格式化方法
- android String 特殊字符处理
- 4. string对象中的单个字符的处理函数
- C# string 中的 @ 作用处理\等字符
- String.prototype 几个简洁的字符处理函数 (转)
- string对象中获取字符
- 关于一道J笔试或者机试题的Java实现:从键盘输入一串字符,翻转后输出(要求不使用string相关类即对象)
- js javascript 判断字符串是否包含某字符串,String对象中查找子字符