c++初学

基于c风格的字符串
以空字符(null)结尾,空字符被写作\0,ASII码为0,用来标记字符串的结尾。
char dog[5]={'b','e','a','u','x'};
char cat[5]={'f','a','t','s','\0'};
这两个数组都是char数组,但是只有第二个数组是字符串。
c++中的很多处理字符串的函数都是逐个的处理字符串中的字符,直到到达空字符为止。如果使用cout显示上面的cat字符串,cout将显示前4个字符,发现空字符后停止。
如果使用cout显示dog数组(它不是字符串),cout将打印出数组中的5个字母,并接着将内存中的随后的各个字节解释为要打印的字符,直到遇到空字符为止。由于空字符在内存中很常见,因此这一过程很快就会停止。
cin使用空白(空格,制表符,换行符)来定字符串的边界。这意味着cin在获取字符数组输入时之都取一个单词,读取该单词后,此乃将该字符串放到数组中,并自动在结尾添加空字符。
面向行的输入:getline() get()
istream()中的类(如cin)提供了一些面向行的类成员函数:getline()和get()。这两个函数都读取一行输入,直到达到换行符。接着,getline会丢弃换行符,而get将换行符保存在输入序列中。要调用getline,可以使用cin.getline(),该函数有两个参数,第一个参数是用来存储输入行的数组的名称,第二个参数是要读取的字符数。如果这个参数为20,则函数最多读取19个字符,余下的空间用于存储自动在结尾添加的空字符。geiline()成员函数在读取指定数目的字符或遇到换行符时停止读取。
get函数使用方法与getline相似,只是get不再读取并丢弃换行符,而是将其保留在输出队列中。
cin.get()调用可读取下一个字符(即使是换行符),因此可以用它来处理换行符,为读取下一行输入做准备。
posted @ 2013-03-30 16:36  tuteng  阅读(243)  评论(0编辑  收藏  举报