IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言字符数组和字符串 —— 2022/3/20 -> 正文阅读

[C++知识库]C语言字符数组和字符串 —— 2022/3/20

字符数组

用来存放字符的数组称为字符数组

char str_1[10];  // 一维字符数组
char str_2[5][10];  // 二维字符数组

字符数组实际上是一系列字符的集合,也就是字符串(String)

C语言规定,可以将字符串直接赋值给字符数组(单个字符多次赋值过于麻烦)

// 通常情况
char str[14] = {"www.baidu.com"};
char str[14] = "www.baidu.com";  // 这种形式更加简洁(实际开发中常用)

// 复杂情况
str[0] = 'w'; str[1] = 'w'; str[2] = 'w';
str[3] = '.'; str[4] = 'b'; str[5] = 'a'...

重点!!!

字符数组只有在定义时才能将一整个字符串赋给它,一旦定义完了,就只能单个字符进行赋值了

char str[5];
str = "love"  // 错误!!!

// 正确赋值如下
str[0] = 'l'; str[1] = 'o'; str[2] = 'v'; str[3] = 'e';

字符串结束标志

字符串是一系列连续字符的组合,要想在内存中定位一个字符串,除了要知道它的开头,还要知道它的结尾,通过字符数组名或者字符串名可以找到字符串的开头,在C语言中,字符串总是以'\0'作为结尾,所以'\0'也被称为字符串结束标志,或者字符串结束符,也就是说通过此字符可以找到字符串的结尾

'\0'是 ASCII码表中的第 0个字符,称为空字符(该字符既不能显示,也没有控制功能,输出该字符不会有任何效果)唯一的作用就是作为字符串结束标志

重点!!!

在这里插入图片描述

由双引号(" ")包围的字符串会自动在末尾添加'\0'

char str[] = "C program";  // 此时字符数组的长度为:10(因为最后有 '\0')

逐个字符地给数组赋值并不会自动添加'\0'

char str[] = {'l', 'o', 'v', 'e'};  // 此时字符数组的长度为:4(因为最后没得 '\0')

论字符数组添加字符'\0'的重要性!!!

#include <stdio.h>

int main(){
	// 解决方法 1:初始化数组状态为 0(即每个字符都为字符 '\0') 
//	char str[6] = {0};
	for(int i = 0,c = 65; c < 70; i++,c++){
		str[i] = c;
	} 
	// 解决方法 2:在给字符数组赋值完毕后,将末尾项赋值为字符 '\0' 
//	str[5] = '\0';
	printf("%s\n", str);  // ABCDE
    return 0;
}

很多编译器并不会把局部数组的内存都初始化为 0值,也就是说输出字符数组时,往往很难找到字符串的结束标志,也就导致输出乱码

字符串长度

字符串长度,就是字符串包含了多少个字符(不包括最后的结束符'\0'

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

int main(){
	char str[5] = "love";
	printf("%d\n", strlen(str));  // 4
    return 0;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:30:29  更:2022-03-21 20:30:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:51:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码