对string的初步认识,以及使用

标准库类型string:

string表示可变长的字符序列,使用string类型时必须包括string头文件

#inclide <string>
using namespce std;
定义并初始化string对象
string s1 ;   				//默认初始化,s1为一个空字符串
string s2(s1) ;				//s2为s1的一个副本,也可以认为将s1的值拷贝与s2
string s3("Hello") ;		//将s3初始化为"Hell"这个字符串
string s4(n,'/a') ;			//将s4初始化为n个a;
string对象上的操作

在c++中,可以使用标准库中的iostream来读写int、double、等内置类型的值,同样也可以使用IO操作符读写string对象。例:

int main()
{
	string s1;
	string s2;
	cin >> s1;				//同样可以多个输入以及多个输出
	cin >> s1 >> s2;
	cout<< s1 << endl;
	cout << s1 << s2 <<endl;
	return 0;

我们经常会碰到一种情况,让你输入一段字符串,这种情况就不适合用cin,因为cin在碰到空格或着换行会自动停止,在这里更适合使用getline

getline:读取一整行字符串

getline函数的参数是一个输入流和一个string对象,例如:getline(cin ,s1);接收一整行字符串,碰到换行结束。

empty:判断string是否为空

在调用empty函数的时候,会根据string对象是否为空返回一个对应的布尔值。

size:返回string对象的长度
处理string中的具体单个字符
  1. 基于范围的for语句 :
    for(declaration : expression)
    {
    statement
    }
    其中,expression部分为一个对象,用于表示一个序列。declaration部分负责定义一个变量,该变量被用于访问序列中的基础元素。一个string对象表示一个字符的序列,因此string对象可以作为范围for语句中的expression部分
string str("hello word")
//遍历str中的每一个字符
for(auto c : str)
{
	cout << str << endl;
}

范围for的功能当然不拘于此,还可以使用范围for语句改变字符串中的字符,如果想改变string对象中字符的值,必须把循环变量定义成引用类型(&)。

//将string对象中的字符的值大小写转换
string s("abcdef");
for (auto &c : s2)
{
		if ((c <= 'Z' && c >= 'A')|| (c<='z' && c>='a'))
				if (c <= 'Z' && c >= 'A')
		{
					c = c + 32;
				}
				else if (c <= 'z' && c >= 'a')
				{
					c = c - 32;
				}
		}
}
  1. 利用下标处理部分或一个字符
    string中利用下标修改部分字符的原理与数组类似,在string中的下标值中不可以出现负值,所以一般可以用size_t的类型定义string中的下标变量,并且,在用过下标访问指定位置前,首先要检查s是否为空。不管什么时候,只要对string对象使用下标,都要确认那个位置上确实有值
//将string中字符串的第一个字符转换成大写
string s("hello word")
if(!s.empty())
{
	s[0]=toupper(s[0])		//toupper为cctype头文件中所定义的函数,可以将字符转换成大写
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值