您的位置:首页 > 其它

对string对象的操作,对string对象中字符的操作:

2016-10-23 10:41 204 查看

对string对象的操作:

//1 编写一段程序从标准输入中一次读入一整行

//2 修改该程序使其一次读入一个词

//为什么要用到getline()函数,因为在程序输入时难免会遇到输入一个空字符,但我又想让其把这个空字符输出来

//这就要用到getline函数,因为输出流cout遇到空字符就会返回

//getline()函数中形参是一个输入流和一个string对象,将输入流读的内容给string对象

//只要getline遇到一换行符就返回结果

/*#include<iostream>

#include<string>

using namespace std;

int main()

{
string ass;
while (getline(cin, ass))
{
cout << ass << endl;
}
return 0;

}

*/

/*#include<iostream>

#include<string>

using namespace std;

int main()

{
string bss;
while (cin >> bss)//输入流cin当输入string对象时,遇到空字符则立刻返回结果
{
cout << bss << endl;
}
return 0;

}*/

//编写一段程序读入两个字符串,比较其是否相等并输出结果,若不相等输出较大的那个字符串

//对string对象中的字符串进行比较,可以直接使用 > 或者 < 号,也可以通过size()函数取得每个字符串的字符长度进行比较

#include<iostream>

#include<string>

using namespace std;

int main()

{
string css, dss;
cin >> css;
cin >> dss;
if (css == dss)
{
cout << css << endl;
}
else
{
if (css > dss)
//if (css.size() > dss.size())
cout << css << endl;
else
cout << dss << endl;
}
return 0;

}

对string对象中的字符进行操作:

处理string对象中的每个字符:

//当我们需要处理string对象中的每个字符时,如判断是否含有空字符或者大小写字母

//通常处理每个字符使用基于范围的for语句,这种语句遍历给定序列中的每个元素,并对序列中的每个元素执行某种操作

//其语法是:for (declaration : expression)  其中expression 是一个对象。表示一个string序列,declaration是定义了一个变量

//               statement                  用于访问该序列中的元素,declaration的变量会被初始化为expression对象的下一个元素值

//使用范围的for语句把string对象中的字符每行一个输出出来

string ess("helloworld");

for (auto c : ess)//使用auto关键字是让编译器来决定变量c的类型

    cout << c << endl;

//使用范围的for语句把string对象中的符号个数打印出来

string fss("hello world!!!");

//int s = 0;

decltype(fss.size()) f = 0;//此处的意思就是使用decltype关键字,变量f的类型名是接收fss.size()函数的返回类型

for (auto c : fss)

{
if (ispunct(c))
++f;
cout << "包含的标点符号数为:" << f << endl;

}

//可以使用for语句改变字符串中的字符

//要想改变字符串中字符的内容,要把循环变量定义为引用类型

string gss("c++ primer");

for (auto &c : gss)//对gss作引用,从c是对gss的引用

{
c = toupper(c);//改变c也就是改变gss的值
cout << gss << endl;

}

只处理string对象中的一部分字符:

//当我们想对string对象中的一部分字符做处理,就最好用到下标运算符([])

//将string对象中的第一个字符变为大写字母

string hss("i am surperman");

if (hss.size())

{
s.[0] = toupper(s[0]);
cout << hss << ensl;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: