C语言的字符串(篇章之一)

一、字符串常量:

  • [本质]我们都把使用双引号包含的任意字符序列称为字符串,也有人把字符串称为字符串常量。特别注意字符串是以'\0'为结束符,但不计入字符串的实际长度。字符串存储在存储在常量区数据段的只读数据段。
  • 而且需要记住一点:C 语言提供了字符串,但是没有提供字符串类型。
  • (举例子)字符串“hello world”在内存中的存储形式如图:
hello world
  • (推结论)C语言没有字符串常量,只能采用字符数组来存储字符串。数组的大小应该比它将要实际存放的最长字符串多一个元素,从而存放‘\0’。

二、字符串与字符的区别

  • 笼统的表示两者的区别:
    'a'---字符 “AAA”---字符串
  • 分点说一下字符:
    1、字符变量用关键字char进行定义,在定义的同时可以赋初值。
    char ch1 = ‘*’,ch2 = ‘A’,ch3;
    2、字符变量只占一个字节。字符变量可以存放任何ASCII字符,所以字符变量可以看做是整型变量来处理。
    3、字符型数据可以和整型数据相互转换。
    eg:
    ‘0’ - 0 = 48 ‘A’ +32 =‘a’
    来个简单的程序:
    #include
    int main ()
    {
    char a = 65;
    printf(“a = %d a = %c”,a,a);
    return 0;
    }//结果为a = 65 a = A
    4、字符常量:一个字符常量用一对单引号括起来,字符常量只能包括一个字符,‘ab’是非法的。
    5、字符常量可用对应的ASCII码表示,需要记住:
    ‘0’===48,‘A’===65,‘a’===97 [AZ,az是顺着下来的]

三、字符串的输入输出

<1>输出

  • 一般比较常见的是printf。
    printf 的格式字符串”%s”,可以用于输出字符串,特点:遇到字符串结束标记则会停止打印输出。
  • puts
    在标准输出函数printf和puts函数功能上基本上是完全一样的。
    eg:
    char a[]="hello"; //定义字符数组
    printf("%s",a); //输出结果是“hello”,没有换行
    puts(a); //输出结果是“hello”,并换行
    可以得出结论:
    当puts()函数在遇到‘\0’时,就会被替换为‘\n’,实现换行的作用。

<2>输出

  • scanf 遇到空格会截止输入
  • gets 只有遇到回车才会停止输入,记住空格也是作为字符输入的。
    两者在不越界的情况下,都会自动在字符串后面追加’\0’。

字符串操作函数

  • 要掌握的四个字符串函数:
    【a】字符串拷贝函数strcpy(s1,s2)
    【b】求字符串长度函数strlen(s)
    【c】字符串链接函数strcat(s1,s2)
    【d】字符串比较函数strcmp(s1,s2)
    记得加预处理部分包含头文件“string.h”。字符串长度要小于字符数组的长度,
    eg:
    char str[10] = "hello";
    sizeof(str)的值为10(数组长度);
    strlen(str)的值为5(字符串长度);

你可能感兴趣的:(C语言的字符串(篇章之一))