news 2026/5/7 3:45:00

C语言——字符数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言——字符数组

字符数组定义与特性

字符数组是一组相同数据类型(char)的有限数据集合,用于存储字符串。

定义格式:
char 数组名[整型常量];
示例:
char string[100];

特性:

  • 单一性:元素数据类型相同
  • 连续性:内存空间连续存放
  • 有序性:元素按顺序排列,下标从0开始
  • 不可整体操作:定义后不能整体赋值

字符数组访问与操作

元素访问

格式:
数组名[整型表达式]
示例:

str[0] = 'h'; char c = str[0];

注意事项:

  • 下标范围:0 ~ 有效长度(\0之前)
  • 输出时必须以\0结尾
写入示例
str[0] = 'h'; str[1] = 'e'; str[2] = 'l'; str[3] = 'l'; str[4] = 'o'; str[5] = '\0';
读出示例
putchar(str[0]); printf("%c\n", str[1]); puts(str); printf("str is %s\n", str);

字符数组初始化

全部初始化
char str1[6] = {'h','e','l','l','o','\0'}; char str2[6] = {"hello"}; char str3[6] = "hello"; // 常用
局部初始化

未赋值元素自动补\0

char str4[10] = {'h','e','o','\0'}; char str5[10] = {"hel"}; char str6[10] = "hello";
空串初始化
char str7[10] = {0}; // 常用
自动容量初始化
char str9[] = {"hello"}; char str10[] = "hello";
错误写法
char str8[] = {'h','e','l'}; // 非字符串(无\0) char str[10]; str = "hello"; // 错误:不能整体赋值

字符数组遍历

示例代码:

char str[10] = {0}; int i = 0, len = 0; // 输入遍历 for (i = 0; i < 10 - 1; i++) { scanf("%c", &str[i]); if (str[i] == '#') break; len++; } str[len] = '\0'; // 输出遍历 for (i = 0; i < len; i++) { putchar(str[i]); }

字符串结束标志

  • 必须使用\0作为结束标志
  • 存储"hello"需要6字节空间:h,e,l,l,o,\0
  • 0'\0'等价,'0'是ASCII字符(值为48)

strlensizeof区别

函数/关键字作用示例
strlen获取字符串有效长度strlen("hello")→ 5
sizeof获取数组总内存大小sizeof(char[100])→ 100

常用字符串函数

  1. strlen

    size_t strlen(const char *s);
  2. strcpy

    char *strcpy(char *dest, const char *src);
    • 目标数组需足够容纳源字符串
  3. strcat

    char *strcat(char *dest, const char *src);
  4. strcmp

    int strcmp(const char *s1, const char *s2);
    • 不可用==直接比较字符串内容

注意事项

  • 字符串操作需包含头文件<string.h>
  • 避免数组越界或未以\0结尾的非法访问
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/7 3:44:29

通过审计日志功能追踪和管理团队的 API Key 使用情况

通过审计日志功能追踪和管理团队的 API Key 使用情况 1. 审计日志的核心价值 在团队协作使用大模型 API 的场景中&#xff0c;管理员需要清晰掌握每个成员或项目的资源消耗情况。Taotoken 提供的审计日志功能能够记录每一次 API 调用的关键信息&#xff0c;包括调用时间、使用…

作者头像 李华
网站建设 2026/5/7 3:36:31

探索x-algorithm:下一代自适应元算法框架的设计与实践

1. 项目概述&#xff1a;算法探索的新前沿最近在算法社区里&#xff0c;一个名为NextFrontierBuilds/x-algorithm的项目引起了我的注意。这个名字本身就很有意思——“下一个前沿构建”加上一个神秘的“x算法”。作为一名长期在算法工程和系统优化领域摸爬滚打的从业者&#xf…

作者头像 李华
网站建设 2026/5/7 3:35:26

ClaraVerse:模块化多智能体仿真框架构建与实战指南

1. 项目概述&#xff1a;ClaraVerse是什么&#xff0c;以及它为何值得关注最近在开源社区里&#xff0c;一个名为“ClaraVerse”的项目引起了我的注意。这个由 claraverse-space 组织维护的项目&#xff0c;乍看之下名字里带着“Verse”&#xff0c;很容易让人联想到当下火热的…

作者头像 李华
网站建设 2026/5/7 3:33:28

音频深度学习工具箱:从梅尔频谱到PyTorch实战

1. 项目概述&#xff1a;一个面向音频深度学习的开源工具箱最近在整理个人项目时&#xff0c;翻出了一个我几年前开始维护&#xff0c;后来因为工作繁忙而有些疏于更新的仓库&#xff1a;Aver005/deepaude。这个名字可能听起来有点陌生&#xff0c;它是我当时为了处理一系列音频…

作者头像 李华
网站建设 2026/5/7 3:18:28

解锁创意显示:利用快马ai辅助开发oled模块的智能动画与交互应用

解锁创意显示&#xff1a;利用快马AI辅助开发OLED模块的智能动画与交互应用 最近在做一个智能家居项目&#xff0c;想给OLED显示模块加点有趣的交互效果。传统开发方式需要自己从头写各种动画和交互逻辑&#xff0c;挺费时间的。后来尝试用InsCode(快马)平台的AI辅助功能&…

作者头像 李华