相关知识点 : C++ Prime P35,P97,P113
#include <iostream>
#include <string>
using namespace std;
void main()
{
//情况1: 当个元素赋值,没有赋结束符,则输出出现非法字符
char a[30];
a[0]='A';
a[1]= 'B';
cout<<"a ="<<a<<endl;
//情况2: 用聚合方式赋值,余下的自动为空字符;只能赋值9个元素,最后一个空着,就自动为'\0';
char b[10] = {'A','B'}; // 其余元素自动为 空字符 '\0',也就是字符串的结束符.
if(b[2]=='\0') cout<<"yes b[2] 为空字符"<<endl; //确实是空
if(b[3]=='\0') cout<<"yes b[3] 为空字符"<<endl;
cout<<b<<endl;
//情况3:没有空字符,乱码. C++ Prime P97,P113
char ca1[] ={'C','+','+'}; //
cout<<ca1<<endl;
char ca2[] = {'C','+','+','\0'}; // 显式加上 空字符, 无乱码,OK
// 情况4: 动态数组,元素个数不确定, 直接用 字符串 (双引号) 赋值,就不会有非法字符.
char c[] = "hello world";
cout<<c<<endl;
//---- 在C++ 中 如果要使用C风格字符串,则这么来: cont char *cp = "xxx yyy zzz";
const char *cp = "1234 56789";
int cnt =0;
while (*cp) {++cp;cnt++;}
cout<<"字符串个数 cnt = "<<cnt<<endl;
}