当前位置: 首页 > article >正文

字符串和字符数组

1.字符串和\0

c语言中有字符类型,但没有字符串类型,c语言中字符串就是由双引号引起来的一串字符,比如:“abcdef”

字符串常量在末尾隐藏了一个’\0’的转义字符,'\0’是作为字符串的结束标志存在的

在这里插入图片描述

库函数printf与strlen遇到’\0’自动停止

2.字符数组的创建与初始化

字符数组就是一个存放字符的数组
创建方式:

//创建字符数组并初始化
char data[5] = {'a','b','c','d','e'}

这里data是一个字符数组,可以存放5个字符
可以用下标访问字符数组,如:

#include<stdio.h>
int main()
{
	char aiee[5] = { 'a','i','e','e','i' };
	int sz = sizeof(aiee) / sizeof(aiee[0]);
	int i = 0;
	for (i = 0; i < sz; i++)
		printf("%c", aiee[i]);
	return 0;
}

3.字符串常量初始化字符数组

字符数组的初始化,也可以使用常量字符串,如:

//指定数组大小
 1. char data1[10]

//通过初始化内容来确定数组元素个数
 2. char data[] = "abcdef"; 

当用常量字符串初始化数组时,数组中存放了能看到的字符和一个’\0’字符。

#include<stdio.h>
int main()
{
	char aiee[5] = { 'a','i','e','e','i' };
	char arr[10] = "abcdef";
	return 0;
}

在这里插入图片描述

4.'\0’作为字符串结束的标志

对字符串数组进行打印等操作时,'\0'是停止的标志
读不到'\0'不结束

5.字符数组的输入与输出

#include<stdio.h>
int main()
{
	char arr[10] = {0};
	scanf("%s", arr);
	printf("%s", arr);
	return 0;
}

数组的名称—>数组中的一个数据的地址

6.求字符串的长度

在c语言中有一个库函数strlen,它是专门用户来求字符串长度的,调用它需要包含头文件<string.h>
strlen(返回整型,size_tl类型)
strlen函数统计的是字符串中\0之前的字符的个数,所以传递给strlen函数的字符传中必须包含\0

#include<stdio.h>
#include<string.h>
int main()
{
	char str[10] = "abcdef";
	printf("%zd",strlen(str));
	return 0;
}

http://www.kler.cn/a/349615.html

相关文章:

  • 基于排队理论的物联网发布/订阅通信系统建模与优化
  • [EAI-026] DeepSeek-VL2 技术报告解读
  • 【C++】类和对象
  • Addressable学习
  • 【解决方案】MuMu模拟器移植系统进度条卡住98%无法打开
  • allegro修改封闭图形线宽
  • 文心一言 VS 讯飞星火 VS chatgpt (370)-- 算法导论24.4 2题
  • SQL注入漏洞(三)
  • Node.js配置Typescript自动编译
  • 深入探讨:xlive.dll文件缺失的影响与解决方案,两分钟修复xlive.dll错误
  • CentOS安装NVIDIA驱动、CUDA以及nvidia-container-toolkit
  • 前端小技巧-网页点击动画效果
  • CSS——表格、表单、链接和导航菜单
  • Python Django 数据库优化与性能调优
  • 线性代数杂谈(2)——逆,转置与置换矩阵
  • 机器学习:opencv--人脸检测以及微笑检测
  • 【vue】vue-router_ vue3路由管理器
  • 5个 elasticsearch实战应用案例和详细分析
  • SuperMap GIS基础产品FAQ集锦(20241014)
  • Python机器学习数据清洗到特征工程策略
  • go语言中的函数详解
  • Spring 循环依赖详解:问题分析与三级缓存解决方案
  • 数据分析:宏基因组群落TOPOSCORE拓扑结构打分
  • 智慧引擎:探索十款顶尖AI知识库软件的奥秘
  • 车载 3D 地图如何从技术上实现渲染品质的全面提升?
  • mqtt学习