C++学习笔记(二)
2015-04-28 01:15
113 查看
在C++中字符串的初始默认后面是有一个空字符的即 \0 其中空字符自动追加到末尾
如: char dog[]={‘d’,’o’,’g’}
char dog[]={‘d’,’o’,’g’,’\0’}
这里前者不是字符串,后者才是,若是用cout打印的话,后者会打印出dog,但是前者会一直打印,直到打印出到空字符为止,因为空字符在系统中很常见,这会很快终止,但是一定会引起乱码。前后dog的长度是不一样的。
在C++中允许将两个字符串拼接,但是中间什么都没有
如cout<<“nihao””gaga”;
这个中间没有空格,这种方式能把前面的最后一个空字符会被后者覆盖掉的,所以显示的是两个合并的
当然前面说的都是字符数组,对于字符数组的操作,会用到cin.get();
与cin.getline()这两个函数,前者会有很多的重载,说到这里不得不说C++提供了一个强大的string类,在string类中我们可以直接对字符串进行操作,如赋值,字符串相加等等,这大大的简化了对字符串数组的操作,不过其实string类内部的各种方法的实现还是按照字符数组的方法,只是让我们操作简化了而已。有兴趣可以参阅一下string类实现的源代码,这将使我们对string有更深的了解。
如: char dog[]={‘d’,’o’,’g’}
char dog[]={‘d’,’o’,’g’,’\0’}
这里前者不是字符串,后者才是,若是用cout打印的话,后者会打印出dog,但是前者会一直打印,直到打印出到空字符为止,因为空字符在系统中很常见,这会很快终止,但是一定会引起乱码。前后dog的长度是不一样的。
在C++中允许将两个字符串拼接,但是中间什么都没有
如cout<<“nihao””gaga”;
这个中间没有空格,这种方式能把前面的最后一个空字符会被后者覆盖掉的,所以显示的是两个合并的
当然前面说的都是字符数组,对于字符数组的操作,会用到cin.get();
与cin.getline()这两个函数,前者会有很多的重载,说到这里不得不说C++提供了一个强大的string类,在string类中我们可以直接对字符串进行操作,如赋值,字符串相加等等,这大大的简化了对字符串数组的操作,不过其实string类内部的各种方法的实现还是按照字符数组的方法,只是让我们操作简化了而已。有兴趣可以参阅一下string类实现的源代码,这将使我们对string有更深的了解。
相关文章推荐
- C++ 学习笔记(2) 虚函数的使用 virtual
- 【C++学习笔记】如何输入含有未知变量的数组?
- C++中虚函数学习笔记
- android_c++ 高级编程NDK学习笔记四
- C++学习笔记-3-动态内存
- c++ 学习笔记
- C++学习笔记(三)
- cocos2d-x学习笔记(十一)c++与lua交互回调函数的处理
- C/C++基础学习笔记
- C++学习笔记:文件I/O v0.01
- [c++学习笔记]反汇编角度看变量名和引用作为函数参数
- C++学习笔记—类6-有关继承的一些东西
- c++学习笔记--下标重载函数
- C++学习笔记,关于一个文件中的全局变量在其他文件中的使用
- 【菜鸟C++学习笔记】9.三目运算符
- c++入门学习笔记--类和对象
- 【C++学习笔记】09_一维数组
- Android 学习笔记——利用JNI技术在Android中调用、调试C++代码
- C++ 对象模型 学习笔记(2)
- C++学习笔记_two_day