字符
char c1 = 65; // ok
char c2 = 'A';// ok
char c3 = "A";// error!
字符输入时所有间隔符都被忽略。
大小写的转换:
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
char str1[10] = "A";
// size: 10, with {65, 0, 0, 0, 0, 0, 0, 0, 0, 0}
char str2[] = "BCD";
// size: 4, with {66, 67, 68, 0}
char str3[] = { 'B', 'C', 'D' };
// size: 3, with {66, 67, 68}
char str4[6] = { 'a', 'b', 'c' };
// size: 6, with {97, 98, 99, 0, 0, 0}
char str5[] = "ABC\0ABC";
// size: 8, with {65, 66, 67, 0, 65, 67, 68}
cout << str1 << "\n" << str2 << "\n" << str3 << "\n" << str4 << "\n" << str5 << endl;
return 0;
}
output:
查看内部存储内容:
\0
是停止标记。如果没有\0
(ASCII 码为 0)就会一直往后走,在Dubug模式下会默认填充为16进制c。因而经常看到“烫烫烫烫”,比如str3
是很危险的!
C 风格认为字符串是 char*
。
几个原则:
- 填充
- 一般传递
char*
几个很危险的函数:
strcpy(char* s1, const char* s2); // s2 的填充给 s1
strcat(char* s1, const char* s2); // s2 加在 s1
strlen()
但是如果
ALL RIGHTS RESERVED © 2020 Teddy van Jerry
欢迎转载,转载请注明出处。