字符数组与字符串

2023-05-16

字符数组与字符串

  • 一、字符串实际上是使用空字符 '\0' 结尾的一维字符数组。
  • 二、字符数组
    • 实例
    • 运行结果
  • 三、字符串
    • 实例
    • 运行结果
  • 四、字符串的定义
    • 如果要构造一个字符串—用指针定义
    • 如果要处理一个字符串—用数组定义
    • 实例
    • 运行结果
  • 五、字符串赋值
    • 实例
    • 运行结果
  • 六、二维数组与指针数组
    • 实例
    • 运行结果

一、字符串实际上是使用空字符 ‘\0’ 结尾的一维字符数组。

二、字符数组

实例

#include <stdio.h>

int main()
{
    char a[] = { 'H','e','l','l','o','!' };
    printf("%p\n", a);
    printf("%llu\n", sizeof(a) / sizeof(a[0]));
    for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
        printf("%c", *(a + i));
    }
    printf("\n");
    for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
        printf("%c", a[i]);
    }
    printf("\n");

    return 0;
}

运行结果

在这里插入图片描述

三、字符串

实例

#include <stdio.h>

int main()
{
    char a[] = { 'H','e','l','l','o','!','\0' };
    char b[] = { 'H','e','l','l','o','!',0 };
    char c[] = { "Hello!" };

    char d[] = { 'H','e','l','l','o','!','0' };
    //error 定义字符串表示错误, 实际上定义了一个字符数组

    printf("%s\n", a);
    printf("%s\n", b);
    printf("%s\n", c);
    printf("%p\n", d);
    printf("%llu\n", sizeof(a) / sizeof(a[0]));
    for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
        printf("%c", *(a + i));
    }
    printf("\n");
    for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
        printf("%c", a[i]);
    }
    printf("\n");
    for (int i = 0; i < sizeof(d) / sizeof(d[0]); i++) {
        printf("%c", *(d + i));
    }
    printf("\n");
    for (int i = 0; i < sizeof(d) / sizeof(d[0]); i++) {
        printf("%c", d[i]);
    }
    printf("\n");

    return 0;
}

运行结果

在这里插入图片描述

四、字符串的定义

如果要构造一个字符串—用指针定义

如果要处理一个字符串—用数组定义

实例

#include <stdio.h>
//#include <string.h>

int main()
{
    // 指针的方式定义字符串,只可读
    char* a = "Hello!";// 相当于 const char* c = "Hello!";

    // 数组的方式定义字符串,可读可写
    char b[] = "Hello!";
    b[0]='B';
    printf("%s\n", b);

    return 0;
}

运行结果

在这里插入图片描述

五、字符串赋值

实例

#include <stdio.h>

int main()
{
    char a[8]="Hello!";
    char* b = a;
    char** c = &b;
    char* d = b;
    printf("%p##\n", a);
    printf("%s##\n", a);
    printf("%p##\n", b);
    printf("%s##\n", b);
    printf("%p##\n", *c);
    printf("%s##\n", *c);
    printf("%p##\n", c);
    printf("%s##\n", c);
    printf("%p##\n", d);
    printf("%s##\n", d);


    return 0;
}

运行结果

在这里插入图片描述

六、二维数组与指针数组

实例

#include <stdio.h>

int main()
{
    // a[0] 相当于 char*

    char a[][10] = { "Hello!","C","C++" };
    printf("%p##\n", a);
    printf("%s##\n", *a);

    char* b[] = { "Hello!","C","C++" };
    printf("%p##\n", b);
    printf("%s##\n", *b);

    return 0;
}

运行结果

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符数组与字符串 的相关文章

随机推荐

  • 计算机二级-C语言-面向对象的程序设计

    对象具有封装性 一个对象由对象名 xff08 标识 xff09 属性和操作三部分组成 0 229是浮点数 xff0c 229是整数 229E 2是指数 xff0c 34 229 34 是字符串 结构化程序设计的重要原则是自顶向下 逐步求精
  • linux+python自动备份数据库

    linux 43 python自动备份数据库 1 在linux上安装mysqldump xff1a yum y install holland mysqldump noarch 2 编写python脚本 xff1a usr bin pyth
  • 计算机二级-C语言-软件工程基础

    软件是程序 数据和文档的集合 计算机软件是由程序 数据及相关文档构成的完整集合 程序是指软件开发人员依据用户需求开发的 用某种程序设计语言描述的 能够在计算机中执行的语句序列 数据是使程序能够正常操纵信息的数据结构 文档是指与程序开发 维护
  • Visual Studio创建C语言编程环境

    Visual Studio创建C语言编程环境 1 启动 visual studio2 创建新项目3 配置新项目4 创建源文件5 添加新项 1 启动 visual studio 将 visual studio 添加到桌面或任务栏 xff0c
  • 浏览器打开收藏夹中书签的各种方法

    1 左键单击 左键单击 61 在当前窗口打开目标网页 2 Shift 43 左键单击 Shift 43 左键单击 61 在新窗口打开目标网页 3 Ctrl 43 左键单击 Ctrl 43 左键单击 61 在新标签页打开目标网页
  • C语言知识总结:a++ 与 ++a 的区别、return 0和return 1的区别、逗号表达式计算规则、数据类型占用字节数、赋值运算符

    C语言知识总结 一 C语言中a 43 43 与 43 43 a 的区别二 C语言中return 0和return 1的区别三 逗号表达式计算规则四 常用基本数据类型占用空间 xff08 64位机器为例 xff09 五 C语言中的赋值运算符
  • C语言printf()函数

    函数printf 中 xff0c md指输出带符号的十进制整数 xff0c 给定最小宽度为m位 xff0c 不足m位左端补空格 xff0c 超过m位按实际位数输出 xff0c m nf表示以小数形式输出实数 xff0c 最小宽度为m位 xf
  • 栈和队列知识点总结

    栈和队列知识点总结 一 栈 入栈与出栈二 循环队列 入队与出队三 栈的存储空间为S 1 m xff0c 初始状态为top 61 m 43 1四 带链的栈和带链的队列五 线性链表 存储空间不连续六 线性结构与非线性结构 判断准则 一 栈 入栈
  • 原码、反码和补码

    1 原码 原码就是符号位加上真值的绝对值 即用第一位表示符号 其余位表示值 比如如果是8位二进制 xff1a span class token punctuation span span class token operator 43 sp
  • Win10点击声音图标打不开音量调节的解决方法

    Win10点击声音图标打不开音量调节 一 问题描述二 解决方法 一 问题描述 Win10系统声音图标显示正常 xff0c 但是点击声音图标无法打开音量调节 二 解决方法 快捷键 Win 43 X 43 T 或鼠标右击任务栏打开任务管理器 找
  • C语言中exit(0) 、exit(1) 和return的区别

    C语言中的exit 文字描述代码验证return 表示返回 xff0c 函数返回exit 表示程序退出exit 0 表示正常退出 xff0c 代码为1exit 1 表示异常退出 xff0c 代码为1 文字描述 return是语言级别的 xf
  • 数组的地址、指针的使用、数组名加1的含义、数组的集成初始化、数组的大小、数组的赋值

    数组与指针 一 数组的地址实例1运行结果实例2运行结果 二 指针的使用实例1运行结果实例2运行结果 三 数组名加1的含义实例1运行结果实例2运行结果 四 数组的集成初始化实例1运行结果实例2运行结果实例3运行结果 五 数组的大小实例运行结果
  • 感想京东

    xfeff xfeff 现在网上购物已经是家常便饭 xff0c 大多数人们都已接受了网购这种方式 xff0c 而能够给人们提供网购的网站也很多 xff0c 而我从好几年前就开始在京东网购物了 xff0c 因此京东商城的每一次发展 xff0c
  • 指针常量与常量指针的区别、const 数组

    指针常量与常量指针 const 数组 一 指针常量指针本身是常量 二 常量指针指向常量的指针 三 实例四 const 数组 一 指针常量 指针本身是常量 span class token comment 指针本身不能被修改 span spa
  • 动态内存的分配

    实例 span class token macro property span class token directive keyword include span span class token string lt stdio h gt
  • 指向数组的指针

    实例 span class token macro property span class token directive keyword include span span class token string lt stdio h gt
  • 指针数组的含义

    实例1 span class token macro property span class token directive keyword include span span class token string lt stdio h g
  • 二维数组的使用

    实例1 二维数组遍历 span class token macro property span class token directive keyword include span span class token string lt st
  • C语言scanf()函数

    scanf 函数输出格式为 xff1a flags type scanf 函数从输入设备按照指定的类型输入对应类型的若干个数据 xff0c 遇到空格 制表符和回车时 xff0c 读取结束 和字母中间的数字表示最多允许读入的数量 scanf
  • 字符数组与字符串

    字符数组与字符串 一 字符串实际上是使用空字符 39 0 39 结尾的一维字符数组 二 字符数组实例运行结果 三 字符串实例运行结果 四 字符串的定义如果要构造一个字符串 用指针定义如果要处理一个字符串 用数组定义实例运行结果 五 字符串赋