Skip to content

Latest commit

 

History

History
153 lines (137 loc) · 3.1 KB

l_04.md

File metadata and controls

153 lines (137 loc) · 3.1 KB

Lesson 4



1. 字符串基础

  • 字符串的定义 数组长度/字符串空间 = 字符数量 + 1 约定: 字符串长度 = 字符数量
    char str[] = "Hello world";
    // or
    char str[12] = "Hello world";
    char* str = "Hello world";
    // recommend
    const char* const str = "Hello world";
    char str[] = {'H','e','l','l','o','\0'};
    // or
    char str[] = {'H','e','l','l','o', 0};

'\0' :转义字符 表示字符串结束
'0' :字符 表示 0 字符

注意,并非所有char []char*类型的变量都为字符串 末尾若无'/0'则不是字符串,否则为字符数组或字符型指针

  • 字符串输入输出
    • 输出字符串

      • 使用格式字符%s
        char str[] = "Hello world";
        printf("%s",str);
        //输出 Hello world
      • puts()函数
        char str[] = "Hello world";
        puts(str); // 换行
        //输出 Hello world
    • scanf()中需要注意的 数组越界

      • 第一种方法:格式字符保留
        char str[6];
        scanf("%5s",str);
        //输入Hello,world
        printf("%s", str);
        //输出Hello
      • 第二种方法:使用scanf_s()
        char str[6];
        scanf_s("%s", str, 6);
        //输入Hello,world
        printf("%s", str);
        //输出空白,因为超过设定的长度,输入无效
      输入空白字符
      • 进行修改
        char str[6];
        scanf_s("%5[^\n]", str);
        //输入rua 123
        printf("%s", str);
        //输出rua 1

字符串操作

  • 写入/读取操作

    char str[] = "1wwuyi";
    str[0] = 'y';
    puts(str);
  • 关于const引例

    void word(const char a[]) //注意const常量的用法
    {
        for (int i = 0; a[i] != 0; i++)
        {
            printf("%c", a[i]);
            Sleep(5);
        }
        printf("\n");
    }
  • 指针?

    • 字符串的标识符为字符串首字符

      char* str = "Hello";
      printf("%c", str);
      //输出H
    • 用指针访问字符串 见引例

  • 指针数组 与 字符串二维数组

    • char* str[]
      char* str1 = "rua";
      char str2[] = "ywwuyi";
      char* str3 = "23333";
      char* a[] = {str1, str2, str3,};
    • char str[][n] (n必填)
      char str[][10] = {
        "rua",
        "ywwuyi",
        "23333",
      }

2. 字符串函数

  • 入门#include <string.h>

  • strlen() 输入字符串 返回字符串的长度

  • strcmp() 比较两个字符串

  • strcpy() 拷贝一个字符串到另一个字符串

  • strchr() 在字符串中搜索某个指定字符

  • strstr() 在字符串中搜索某个指定字符串

  • strcat() 在字符串中搜索某个指定小猫× 将B字符串接到A字符串的后边