文字?? 非常常见 没什么感觉呀 比如说正在写文章所使用的"汉字" 这个象形文字太美了,
我们知道都知道伟大的汉字,是中国人 都会感同身受,虽然曾经以文化普及率极低,甚至要"废除汉字"
这种说法,为啥,因为当时的汉字太难学了 而且贫富差异,非常的高,导致文盲率大大的提升,直到中华人民共和国成立, 汉语拼音方案,瞬间 提高了文化水平 也培养了一大批知名人物, 说起汉语拼音非常的不凡:读音就行,当然目的还是汉字有更好的延续下去;
文字类型
啥是文字类型 想想 ,字符 字符的组合是不是文字? 也对呀 是的,但这些字符好像美国为了自己的计算机提供了自己的标准 ANSII 标准编码 但谁能想象到中国 也普及, 所以国家信息部
提供标准编码 来兼容ANSII编码 并且有特色 ,
- 一个汉字两个字节
字符串
字符的组合就是字符串 ,??? 不对吧 不应该是字符集合 ,?
想想的概念 就知道是不可能的 因为他们是挨着的…
集合:没有任何的关系的 比如说你和一个陌生人 一样 没有任何的关系
而字符串是一个挨着一个 就像房间的编号 一对一的关系,
我好像想到了数组 对的 可以用字符数组表示可修改的字符串 默认是不可修改的,
因为它是一个常量 不可修改 !;
字符数组
存储字符的仓库 可修改的字符串
例子:
// 模拟 歌词
char geci[1024];
strcpy_s(geci ,sizeof(geci) ,"窗外的麻雀,在电线杆子上多嘴");
//歌词:窗外的麻雀,在电线杆子上多嘴
cout<<"歌词: "<<geci<<endl;
C风格字符串
字符数组是C风格字符串
特点:必须在字符串的最后一个字符的下一个 拥有字符串的结束符
比如说:字符串"ABCD";
内存存储:
看了这个字符串常量内存的存储 不难发现这个还有’\0’ C语言的字符串不知道如何结束 大不了多一个
注意:C风格字符串不可以直接赋值
char str[64];
str="abcd";//这是错误的
只能通过 C字符串函数来实现
//参数 1:目标可修改字符串, 目标可修改字符串容量,常量字符串
errno_t strcpy_s(char * dest, rsize_t destsz, const char * src);
char str[64];
strcpy_s(str ,sizeof(str) ,"ABCD");
若是想拼接操作:
char str[64];
strcpy_s(str ,sizeof(str) ,"ABCD");
strcat_s(str ,sizeof(str),"EFG");
C++风格字符串
string 就正常化就像一个变量一样,当然本质用一个C风格字符串 动态分配内存空间 我们先不去管他的本质,用了再说
string Webname;
Webname="小森程序员";
cout<<"网络名称:"<<Webname<<endl;
cout << "网络名称:"<< Webname << endl;
老版本编译器会报错,只需要包含string 头文件即可
若是想拼接操作:
string Webname="网络名称";
Webname+="小森程序员";
cout<<Webname<<endl;
比较字符串
当 一个字符串比较的时候默认的方式去比较相等或者不相等 比如:用户名或者密码相等才能进入这些网站 ,
直接相等 就 == 不相等就 != 在C++的string 这样比较 C语言只能用strcmp 函数
相等 返回0 不相等前面取逻辑非操作
strcmp
若需要比较那个字符串小 返回值 是<0 也就是-1 相反 若需要比较那个字符串大 返回值 是>0 不等于操作 !((strcmp)==0) =true
C++ string添加了 <= 或者>= ,< ,> 比较