C++,字符数组,赋值问题,语法练习
相关知识点 : 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个元素,最后一个空着,就自动为" ";
char b[10] = {"A","B"}; // 其余元素自动为 空字符 " ",也就是字符串的结束符.
if(b[2]==" ") cout<<"yes b[2] 为空字符"<<endl; //确实是空
if(b[3]==" ") cout<<"yes b[3] 为空字符"<<endl;
cout<<b<<endl;
//情况3:没有空字符,乱码. C++ Prime P97,P113
char ca1[] ={"C","+","+"}; //
cout<<ca1<<endl;
char ca2[] = {"C","+","+"," "}; // 显式加上 空字符, 无乱码,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;
}

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 十六进制字符串转中文
- 下一篇: C++ 将字符串值赋给CHAR数组
