string类型
来源:互联网 发布:get软件是真鞋么 编辑:程序博客网 时间:2024/05/20 21:18
string是 c++标准的字符串类型,负责管理与存储字符相关的内存。
使用string需要包含 头文件 #include <string> 同时需指定命名空间 using std::string (或直接使用std::).
几种初始化string的方式:
string s1; //默认构造函数,s1为空串string s2(s1); // 将s2初始化为s1的一个副本string s3("value");// 将s3初始化为一个字符串字面值string s4(n,'c');// 将s4初始化为字符‘c’的n个副本
(为了与c兼容,字符串自面值与标准库string类型不是同一种类型,需要特别注意)
string对象的读写
string对象可用标准输入输出符来读写string
std::string str; //std::cin >>str; //读取一个string 忽略开头的空格 以空格结束 // std::cout <<str<<std::endl; //while(std::cin>>str) // 读取一组string while(std::getline(std::cin,str)){ std::cout<<str.size()<<std::endl; std::cout<<str<<std::endl; std::cout<<str[3]<<std::endl; if(isalpha(str[3])) std::cout<<"is word!"; else std::cout<<"not word!"; }
string对象操作
s.empt() 如果s为空串,则返回true,否则false
s.size() 返回s中字符的个数
s[n] 返回s中位置为n的字符,位置从0开始
s1+s2 把s1和s2连接成一个新字符串,返回新生产的字符串
s1 = s2 把s1的类容替换为s2的副本
v1 == v2 比较v2 v1的内容,相等返回true 否则返回false
string::size_type类型
string类类型和其他类类型一样,都定义了一些配套类型。通过这些配套类型,库类的使用就与机器无关。这里的string::size_type实际为unsinged 类型。 一般编程过程中最好使用这样的配套类型 可以是代码更加规范。
string赋值
为了将标准类型尽量设计得和基本数据类型一样方便易用,因此大多数库类型支持赋值操作。对string来说可以将一个string对象赋值给另一个string对象
string s1, s2 = "the expense of spirit";st1 = st2;赋值后st1 就包含st2的一个副本。大多数时候赋值等操作会遇到一些 效率上的问题,但值得注意的是从概念上讲,赋值必须先把st1占用的内存释放然后在分配给st1足够存放st2副本的空间,最后把st2赋值到新分配的内存空间。
string对象中的字符处理
适用于 string 对象的字符(或其他任何 char 值)。这些函数都在 cctype 头
文件中定义。
isalnum(c) 如果 c 是字母或数字,则为 True。
isalpha(c) 如果 c 是字母,则为 true。
iscntrl(c) 如果 c 是控制字符,则为 true
isdigit(c) 如果 c 是数字,则为 true。
isgraph(c) 如果 c 不是空格,但可打印,则为 true。
islower(c) 如果 c 是小写字母,则为 true。
isprint(c) 如果 c 是可打印的字符,则为 true。
ispunct(c) 如果 c 是标点符号,则 true。
isspace(c) 如果 c 是空白字符,则为 true。
isupper(c) 如果 c 是大写字母,则 true。
isxdigit(c) 如果是 c 十六进制数,则为 true。
tolower(c) 如果 c 大写字母,返回其小写字母形式,否则直接返回 c。
toupper(c) 如果 c 是小写字母,则返回其大写字母形式,否则直接返回 c。
125
表中的大部分函数是测试一个给定的字符是否符合条件,并返回一
个 int 作为真值。
如果测试失败,
则该函数返回 0 ,
否则返回一个
(无意义的)
非 0 ,表示被测字符符合条件。
表中的这些函数,可打印的字符是指那些可以表示的字符,空白字符则是空
格、制表符、垂直制表符、回车符、换行符和进纸符中的任意一种;标点符号则
是除了数字、字母或(可打印的)空白字符(如空格)以外的其他可打印字符。
这里给出一个例子,运用这些函数输出一给定 string 对象中标点符号的个
数:
string s("Hello World!!!");
string::size_type punct_cnt = 0;
// count number of punctuation characters in s
for (string::size_type index = 0; index != s.size(); ++index)
if (ispunct(s[index]))
++punct_cnt;
cout << punct_cnt
<< " punctuation characters in " << s << endl;
这个程序的输出结果是:
3 punctuation characters in Hello World!!!
0 0
- String 类型
- string类型
- string类型
- String类型
- string 类型
- String类型
- String类型
- string类型
- string类型
- string类型
- string类型
- String类型
- string类型
- string类型
- string类型
- String类型
- String类型
- String类型
- 【codevs1040】【01NOIPTG】统计单词个数,字符串的划分DP
- canvas arc画圆遇到的问题
- 全局变量和局部变量在内存里的区别
- found for dependency: expected at least 1 bean which qualifies as autowire @Resource时导入的包错了,应该导入
- Maven学习总结(二)——Maven项目构建过程练习
- string类型
- zzuli OJ 1029: 三角形判定
- 困难的事
- 苹果A8处理器
- leetcode 216: Combination Sum III
- [leetcode]Contains Duplicate II C语言
- iscsi挂载连接异常
- 简述Android系统内存不足时候,内存回收机制
- sql server 自定义函数的使用