一、Char定义
- 最简单的字符数据类型是 char 数据类型。该类型的变量只能容纳一个字符,而且在大多数系统上,只使用一个字节的内存。请注意,这里的字符常数就是赋给变量的值,要用单引号括起来。
- 双引号代表字符串常数;单引号用于字符赋值;
#include <iostream>
using namespace std;
void main()
{
char a='a';
char b[]="b";
cout<<'a:'<<a<<endl;
cout<<"b:"<<b<<endl;
return;
}
二、字符和字符串区别
- 字符常数和 char 变量只能保存一个字符。如果要在常数或变量中存储多个字符,则需要使用更复杂的字符数据类型 string(字符串)
- 因为字符串常数几乎可以是任意长度,所以程序必须有一些方法知道它有多长。在 C++ 中,这是通过在其末尾附加一个额外的字节并将数字 0 存储在其中来完成的。它标记着字符串的结尾。
不要将空终止符与字符 ‘0’ 混淆。字符 ‘0’ 的 ASCII 码是 48,而空终止符的 ASCII 码是 0。 - 内部存储方式。
存中实际存储的内容。
三、char数组赋值
c++ 字符数组赋值
- 2.正确用法
char a[10]="hello"; //正确
char a[10]={'h','e','l','l','o'}; //正确
- 2.错误用法
char a[10]; a[10]="hello"; //错误
char a[10]; a="hello"; //错误
- 3.strcpy()
char name[20];
strcpy(name,"junxue");
- 4.strcpy_s()
strcpy()已经弃用,改成了更安全的strcpy_s()
char name[20];
strcpy_s(name, 6+1, "junxue");
四、string转换为char[]
1.string自带的copy()函数
#include "stdafx.h"
#include <iostream>
#include<string>
using namespace std;
void main()
{
char name[20];
std::string aa="junxue";
aa.copy(name,aa.length(),0);
cout<<name<<endl;
}
五、char name[]和char *name
详见:参考2c++的char[]和char *的区别