字符和字符串

我们都知道,计算机内部是由0和1组成的,也就是二进制,那么计算机是怎么表示字符‘a’的呢?

ASCLL码

ASCLL码(美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准。
c++显示字符也依靠ASCLL码实现,下面贴个表
在这里插入图片描述
可以在表中知道,每个字符都有其对应的ASCLL码值

char c='a';//在c++中,赋值字符要加上单引号
cout<<(int)c;//在变量前加括号,内加类型,意思是把变量的类型强制转换成括号内类型

这段代码最终会输出97,找到上图中a的对应值,刚好是97。
所以其实char这个类型定义的变量里存的是数字,只不过输出的时候输出其数字对应的字符罢了

char c=97;
cout<<c;

如果给char类型的变量赋值时候赋的是数字,它会自动转换
可能有些人会好奇,如果赋值0到127之外的数字会怎么样,答案是会报出一个警告,然后什么也不输出
这里说明一下,警告和错误是不一样的,c++如果报错,结果是无法运行,如果警告,结果是可以运行,但是会出现一些c++无法处理的情况,警告一般是用橙色的字体显示

字符串

数字有数组,字符自然有字符数组,但是我们一般都叫字符串。
在c++中,单引号代表字符,双引号代表字符串。

string c;
char c[10];

这两个定义是差不多的,但是有微妙的差别,下面用char来定义一个数组是c++从c语言那里继承过来的,string则是c++特有的,你可能会有疑惑,为什么string定义的数组后面不需要加空间大小。
原因就在于,string是一个动态数组,也就是,你加一个字符进去,c++就自动帮你申请一个空间,而不必在定义的时候就规定了数组大小。
字符数组是一个很特殊的东西,因为它的输入不需要循环。

char c[100];
scanf("%s",&c);//不加取地址符也可以正常运行
//或者可以用下面的方式
cin>>c;
//输出也很简洁
cout<<c;
printf("%s",c);

你甚至可以把一个字符串当成一个变量来输入输出
不过这里推荐使用string,因为身为c++的特有类型,c++给它内置了函数
在这里插入图片描述
实例

char str1[13] = "runoob";
   char str2[13] = "google";
   char str3[13];
   int  len ;
   // 复制 str1 到 str3
   strcpy( str3, str1);
   cout << "strcpy( str3, str1) : " << str3 << endl;
   // 连接 str1 和 str2
   strcat( str1, str2);
   cout << "strcat( str1, str2): " << str1 << endl;
   // 连接后,str1 的总长度
   len = strlen(str1);
   cout << "strlen(str1) : " << len << endl;
   return 0;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值