对于C++字符串输入的理解

1.字符串是存储在内存中的连续字节中的一系列字符。C++处理字符串的方式有两种,第一种来自C语言,常被称为C-风格字符串(C-style string),另一种基于string类库的方法。存储在连续字节中的一系列字符意味着可以将字符串存储在char数组中,其中每一个字符都位于自己的数组元素中。字符串提供了一种存储文本信息的便捷方式。C-风格字符串具有一种特殊的性质:以空字符(null character)结尾,空字符被写作\0,其ASCII码为0,用来标记字符串的结尾。举例如下

//实例1
#include<iostream>
using namespace std;
int main()
{
char dog[8] = {'b', 'e', 'a', 'u', 'x', ' ', 'H', 'i'};
//not a string,
char cat[8] = {'b', 'a', 'c', 'f', 's', 'e', 't', '\0'};
// a string
cout<<"dog[8]="<<dog<<"\n";
cout<<"cat[8]="<<cat<<"\n";
return 0;
}
//输出结果
//实例2程序变成如下
int main()
{
char dog[8] = {'b', 'e', 'a', 'u', 'x', '\0', 'H', 'i'};
//把dog中的空格符改成一个空字符'\0',那么dog[8]是不是一个字符串呢,答案是,输出空字符前面部分,
//其余补成空字符。
char cat[8] = {'b', 'a', 'c', 'f', 's', 'e', 't', '\0'};
// a string
cout<<"dog[8]="<<dog<<"\n";
cout<<"cat[8]="<<cat<<"\n";
return 0;
//输出结果
/*
dog[8]=beaux
cat[8]=bacfset
*/
}

在上述数组实例中,将数组初始化为字符串的工作看上去很麻烦,使用大量的单引号,并且必须加上空字符。看如下实例2,将字符数组初始化化为字符串的方法。

//实例2
#include<iostream>
using namespace std;
int main()
{
char name[8]="Beautys";
char dog[8]="Ugly";
cout<<name<<'\n';
cout<<dog<<'\n';
return 0;
}
//输出结果
//Beautys
//Ugly,对于前面定义的dog包括8个字符,如若没有的话,会自动补齐空字符'\0';不要忘记,每一个字符串结尾
//都会有一个空字符'\0'.

注意:字符串常量(使用双引号)不能与字符常量(使用单引号)互换。字符常量(如'S')是字符串编码的简写表示。在ASCII系统上,'S'只是83的另一种写法如下实例。

char shirt_size = 'S';//这是正确的
如若写成
char shirt_size ="S";//这是不正确的,"S"不是字符常量,他表示的是两个字符(字符S和\0)组成
//的字符串。更糟糕的是:"S"实际上表示的是字符串所在的内存地址,因此语句中是将一个内存地址赋给 shirt_size

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值