18:字符串-char型字符串

1 什么是字符串?
字符串是以空字符(\0)结尾的字符数组。
空字符的assii码为:0, 空格的ascii码为32
2 \0的作用
'\0'是一个空字符标志,它的ASSII码为0,C++有好多处理字符串的函数,都以'\0'为结束标记。
也就是以空字符为结束标记,比如cin,cout。它们都以空字符为结束标记,他们在遇到空字符后将会停止输入或输出。

3 cin.ignore()
cin.ignore(a,ch) 从输入流(cin)中提取字符,提取的字符被忽略(ignore),不被使用。每抛弃一个字符,
它都要计数和比较字符:如果计数值达到a或者被抛弃的字符是ch,则cin.ignore()函数执行终止;否则,它继续等待
默认参数为cin.ignore(1,EOF),即把EOF前的1个字符清掉,没有遇到EOF就清掉一个字符
它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响.
4 cin.get(char[], n) 的结束标记是 \n 换行符。因此遇到空白字符(空格,tab)不会结束。同时在输入结束后,也就是用户输入第一个回车后,cin.get自动为
当前接受的输入的数组添加字符串结束标记 \0, 因此它实际保存的有效字符是它的第二个参数减1.

5 cin遇到不可见字符(制表符和空格)和空字符('\0')就停止输入。
cout则只是遇到空字符才停止输出。0

6 char man[] = {"a "} 是一种简写,隐含了字符串结束标记\0 char m[] = {'a', 32, 'b', '\0'};

7 计算字符串长度时,不要忘记最后的空字符'\0' strlen(char型字符串)是计算可见字符的长度(不包括 ascii 0) sizeof(是计算字符串的长度)(含asscii0)

 

#include <iostream>
using namespace std;

int main()
{
    {
        cout << "字符数组" << endl;
        char man[4] = {'J', 'a', 'c', 'k'};
        cout << man << endl;
        cout << "----------------" << endl;
    }

    {
        cout << "字符串" << endl;
        char man[] = {'J', 'a', 'c', 'k', '\0'};
        cout << man << endl;

    }

    {
        cout << "空字符的作用" << endl;
        char man[12];
        cin >> man;
        cout << man << endl;
    }

    {
        char man[12];
        cin.ignore(1024, '\n');
        //cin.ignore();
        cin.get(man, 12);
        cout << man << endl;
    }

    {
        char man[12];
        cin.ignore(1024, '\n');
        //cin.ignore();
        cin.get(man, 11);
        cout << man << endl;
    }


    {
        char m[] = {'a', 32, 'b', '\0'};
        cout << m << endl;
        cout << "----------------" << endl;
    }

    {
        char man[] = {"a b"};
        cout << man << endl;
    }


    {
        char man[12] = {"hello world"};
        cout << man << endl;
        cout << "strlen(man)="  << strlen(man) << endl;
        cout << "sizeof(man)=" << sizeof(man) << endl;
        man[6] = '\0';
        cout << "strlen(man)="  << strlen(man) << endl;
        cout << "sizeof(man)=" << sizeof(man) << endl;
    }


    return 0;
}

/* vim: set ts=4 sw=4 sts=4 tw=100 */

 

posted on 2015-04-05 19:48  雨渐渐  阅读(627)  评论(0编辑  收藏  举报

导航