c++ 字符串总结
2010-12-04 14:41
134 查看
C++中可以用三种方式存储字符串:
1.字符数组
char str[] = “hello, world!”;
char str[] = {“hello, world!”};二者等价
(只能在初始化的时候这样写,不能先定义一个字符数组,再用字符串常量赋值!)
字符数组的长度是字符串长度加1,因为字符串常量会自动加一个‘\0’;
sizeof(str)返回是13
cout << str <<endl;一个一个字符的输出,遇到末尾的‘\0’认为字符串结束;
=======================================
char str[] = {'h','e','l','l','o'};
用这种方式初始化的字符数组,结尾处没有'\0',cout << str <<endl;的时候可能会出错,
因为找不到字符串结束符;
2.字符指针指向一个字符串常量
char *str = "hello, world!";
g++编译的时候会有警告,不建议使用;
sizeof(str) = 4;计算的是字符指针的空间大小,而不是字符窗常量的大小;
cout << str << endl;也可以输出字符串;
3.用string类定义对象
因为string不是C++的基本类型(比如int, float...)
而是标准库中的一个类,所以一定要#include <string>
用string str = "hello,world!";
与字符数组str[]不同的是,可以先不初始化,定义了以后在用字符串常量赋值!而且支持运算符重载;
sizeof(str) = 4;也是把str当作指针??
cout << str << endl;也可以输出字符串;
1.字符数组
char str[] = “hello, world!”;
char str[] = {“hello, world!”};二者等价
(只能在初始化的时候这样写,不能先定义一个字符数组,再用字符串常量赋值!)
字符数组的长度是字符串长度加1,因为字符串常量会自动加一个‘\0’;
sizeof(str)返回是13
cout << str <<endl;一个一个字符的输出,遇到末尾的‘\0’认为字符串结束;
=======================================
char str[] = {'h','e','l','l','o'};
用这种方式初始化的字符数组,结尾处没有'\0',cout << str <<endl;的时候可能会出错,
因为找不到字符串结束符;
2.字符指针指向一个字符串常量
char *str = "hello, world!";
g++编译的时候会有警告,不建议使用;
sizeof(str) = 4;计算的是字符指针的空间大小,而不是字符窗常量的大小;
cout << str << endl;也可以输出字符串;
3.用string类定义对象
因为string不是C++的基本类型(比如int, float...)
而是标准库中的一个类,所以一定要#include <string>
用string str = "hello,world!";
与字符数组str[]不同的是,可以先不初始化,定义了以后在用字符串常量赋值!而且支持运算符重载;
sizeof(str) = 4;也是把str当作指针??
cout << str << endl;也可以输出字符串;
相关文章推荐
- C++ 关于字符串总结(持续更新)
- C/C++ 字符串reverse总结
- JAVA与C++::关于JNI中文字符串操作问题总结
- C++ 输入字符串和string 类型总结
- 工作总结:检查字符串合法性(C++)
- C/C++字符串操作函数总结
- C++基础总结(2)---字符串
- C++的输入输出流简单总结【字符串】
- C/C++ 字符串处理小函数(个人总结)
- C++中字符串的相互转换总结(珍藏)
- C语言和C++下字符串处理函数总结
- C++字符串分割总结
- C/C++(字符串处理)字符指针、字符数组用法大总结
- c++字符串处理函数总结
- C++字符串总结
- c++字符串输入总结
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- [总结]c++字符串详解
- char, wchar_t, TCHAR 字符全总结 & c++字符串操作经验集
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]