欢迎访问文稿网!

字符串的概念

范文之家 分享 时间: 加入收藏 我要投稿 点赞

字符串的概念

    6.3.2 字符串的概念

    字符数组的功能不只是前面所讲述的那样,实际上,字符数组有更强大的功能与应用范围,这就是字符串。所谓字符串,就是由若干字符构成的有限的有序集合。字符串可以包括字母、数字、专用字符、转义字符等。C语言没有专门的字符串变量,通常用一个字符数组来表示一个字符串。C语言规定:以''作为字符串的结束标志(“”代表ASCII码为0的字符,表示一个“空操作”,只起了一个标志作用)。字符串可以整体处理,不必像数组元素那样单个进行处理。

    1.用字符串定义及初始化字符数组

    img375

    该字符串在内存中的存放形式如图6-2所示。

    img376

    

    图6-2

    字符串还可以定义成如下形式:

    img377

    注意:

    ①字符串在内存中存放时,系统将自动在字符串的末尾添加一个字符串的结束标记'',系统碰到第一个''就认为字符串处理结束。

    ②由于结束标志在字符数组中占用一个元素的存储空间,因此在说明字符数组长度时,其最小长度为实际字符串所需长度加1。例如:数组str的长度为8,不是7(如图6-2所示)。

    ③如果是部分元素初始化,则其余的部分补''。

    例如:

    img378

    数组c的前5个元素为“C”,“h”,“i”,“n”,“a”,第6个元素为“”,后4个元素为空字符,如图6-3所示。

    img379

    

    图6-3

    2.字符串的输入和输出

    除了可以通过初始化使字符串得到初值外,也可以使用scanf()函数输入字符串。同样,也可以用printf()函数整体输出存放在字符数组中的字符串。

    例6.11

    程序如下:

    img380

    程序运行结果如下:

    img381

    注意:

    ①输出的字符串不包括结束符“”。

    ②用“%s”格式符用来控制字符串的输入输出。在printf()函数中的输出项是字符串名或字符数组名,而不是数组元素名。下面的写法是错误的:

    printf("%s",a[0]);

    ③若数组长度大于字符串实际长度,也只输出遇到''时结束。如果一个字符数组包含一个以上'',则输出到第一个''时就输出结束。

    例如:若输入的数据是:string↙,系统会自动在后面加一个''结束符。该字符串在内存里的存放形式如图6-4所示。

    img382

    

    图6-4

    程序运行后在屏幕上显示的是:string。

    ④用scanf()函数输入字符串时,如果使用%s格式符,其输入项是字符串名或字符数组名,此时不需要再加地址符&。输入数据时,以回车作为结束,系统会自动在串尾添加''作为结束标志。

221381
领取福利

微信扫码领取福利

微信扫码分享