字符串,字符数组
Posted cao-yucong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串,字符数组相关的知识,希望对你有一定的参考价值。
字符数组/字符串
字符类型
字符类型是能存字符的数据类型,除了存储(ASCII)表里面的数组以外,还能存储类似" "," "的转义字符。比如:" "是换行," "是制表符(不懂就自己试试)
char a = '
';
cout << 1 << a << 1;
这个程序的输出就是
1
1
也就是说(a)就代表了换行。记得 printf("%d ",x)的含义吗?这里的 和前面的是同样的意思。
字符串
字符串是指一串字符,字符串的实质就是数组。需要特别注意的是,"txtxt"的字符串存储就是"txtxt ",其中, 代表一个字符串的结尾。
输入方法:
直接读入一个没有空格的字符串:
string a;
cin >> a;
字符数组
就是字符类型的数组。和字符串有什么区别呢?一点区别
- 字符数组基本不用
char a[1000];
string b;
以上两种声明方法有什么区别?基本没有。
char a[1000];
string b;
b[0] = 'f';
上面这种操作就是完全可以的。简单来讲:字符串类似字符数组。他们有两点不同之处:
- 字符数组有两种声明方式:char a[1000],string a 这两种声明方式微微不同。
- char a[1000]声明的数组不支持a = "abcdefghi"这种赋值方式,但是他支持cin >> a这种读入方式。他支持的赋值方式只有a[3] = ‘k‘;
- string a数组应该是你能想到的赋值方法都支持。
‘ ‘到底有什么用?既然是表示字符串的结尾,那么输出的时候只要输到‘ ‘,输出就停止。
还有问题?看下面的代码。
(code1)
string a = "lcez";
a[0] = 'k';
cout << a << endl;
a = "hh";
cout << a << endl;
(out)
kcez
hh
(code2)
char a[1000];
a[0] = a[1] = 'y';
cout << a << endl;
a[2] = a[3] = a[4] = a[5] = 'x';
cout << a << endl;
a[3] = '