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

作者: 遮天的龙 | 来源:发表于2016-05-30 22:51 被阅读146次

一、字符串常量:

  • [本质]我们都把使用双引号包含的任意字符序列称为字符串,也有人把字符串称为字符串常量。特别注意字符串是以'\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 <stdio.h>
    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语言的字符串(篇章之一)

    一、字符串常量: [本质]我们都把使用双引号包含的任意字符序列称为字符串,也有人把字符串称为字符串常量。特别注意字...

  • C语言的文件(篇章之一)

    【1】、文件 C语言中,把文件看做一个字符的序列,也称字符流(没有格式)可以简单认为是分为: 其实是按数据的组织形...

  • C语言的结构体(篇章之一)

    一、结构体的定义: 结构体类型是一种由用户根据实际需要自己构造的数据类型,必须要“先定义,后使用”。 二、结构体类...

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

    指针数组 【一】定义:指针用于存储地址,它和数组名紧密的联系在一起。而上章我们讲的字符串呢?如果一个数组的元素是字...

  • C语言- 字符、字符数组

    字符数组和字符串 C语言中没有字符串这种数据类型,C语言中通过char型数组来替代字符串的功能。C语言中的字符串一...

  • C语言的指针(进阶篇章之一)

    指针运算 切记一点就是:指针的运算包括数值和类型。 一、赋值运算 在进行指针的赋值运算时,要注意的是不同类型指针虽...

  • 2018-05-13

    C语言:c语言中没有字符串类型,也没有字符串变量,字符串是放在字符型数组中的。 C语言数变量类型:整型、浮点型、v...

  • Redis 源码简洁剖析 02 - SDS 字符串

    C 语言的字符串函数 C 语言 string 函数[https://devdocs.io/c-strings/],...

  • C++11新特性(20)-用string对象处理文件名

    C风格字符串 从C语言开始,就已经实现了对字符串的支持。为了处理C风格字符串,C语言标准库提供了一组函数,它们被定...

  • Redis数据结构

    1 简单动态字符串 Redis 是用 C 语言写的,但是对于Redis的字符串,却不是 C 语言中的字符串(即以空...

网友评论

    本文标题:C语言的字符串(篇章之一)

    本文链接:https://www.haomeiwen.com/subject/pndcdttx.html