C语言程序设计(第四版)第十章主要内容

2024-06-17 04:52

本文主要是介绍C语言程序设计(第四版)第十章主要内容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本章主要讲述了<字符串>

一、字符串字面量

1.字符串字面量,有时也称为字符串常量,它是由一对双引号括起来的一个字符序列。

2."a"是字符串字面量,而'a'是字符常量。

3.字符串实际就是由若干有效字符构成且以'\0'作为结束的一个字符序列。

二、字符串的存储

1.字符串结束标志'\0'也占一个字节的内存,但它不计入字符串的实际长度,只计入数组的长度。

注意:如果没有'\0',那么数组就不代表一个字符串,因为'\0'在内存中也占一个字节的存储单位,所以数组定义的长度应大于等于字符串中包括'\0'在内的字符个数。

2.简单的方法初始化:char str[]={"Hello"};

或者char str[]="Hello";

3.初始化长度小于声明,系统将其后剩余的单位自动初始化为'\0'。

三、字符指针

1.字符指针是指向字符型数据的指针变量。

2.正确使用字符指针,必须明确字符串被保存到了哪里以及字符指针指向了哪里。

四、字符串的访问和输入/输出

1.和其他类型的数组一样,可以使用下标方式来访问存放于字符数组中的每个字符。

2.还可以通过字符指针间接访问存放于数组中的字符串。

注意:对于数组名str,不能使用str++操作使其指向字符串中的某个字符,因为数组名是一个地址常量,其值是不能被改变的。

3.常见的输入形式:

98de3acc71ef48d29f818dfbcd880710.jpg

0720549a8db7479eb0bc489f50dcb0ca.jpg 

 注意:由于字符数组名str本身代表数组中存放的字符串的首地址,所以数组名str的前面不能再加取地址运算符。

4.用scanf()按s格式符不能输入带空格的字符串。

5.使用字符串处理函数gets(),可以输入带空格的字符串。

6.gets()以回车符作为字符串的终止符,同时将回车符从输入缓冲区读走,但不作为字符串的一部分。而scanf()不读走回车符,回车符仍留在输入缓冲区中。

7.函数puts()用于从括号内的参数给出的地址开始,依次输出存储单位中的字符,当遇到第一个'\0'时输出结束,并且自动输出一个换行符。

8.函数gets()不能限制输入字符串的长度,很容易引起缓冲区溢出。

9.fgets(name,sizeof(name),stdin);//限制输入字符串长度不超过数组大小

五、字符串处理函数

1.若要使用字符串处理函数,必须在程序的开头将头文件<string.h>包含到源文件中。

2.对单个字符进行赋值操作可以使用赋值运算符,但是赋值运算符用于字符串的赋值操作,字符串赋值只能使用函数strcpy()。

3.比较字符串不能直接使用关系运算符,而应使用函数strcmp()来比较字符串大小。

4.字符串比较大小时,实际上是根据两字符对比时出现的第一对不相等的字符的大小来决定他们所在的的大小的。

六、向函数传递字符串

1.向函数传递字符串时,既可使用字符数组作函数参数,也可使用字符指针作函数参数。

注意:与使用其他类型数组不同的是,通常不使用长度即计数控制的循环来判断数组元素是否遍历结束,而使用条件控制的循环,利用字符串结束标志'\0'判断字符串中的字符是否遍历结束。

2.为防止实参在被调函数中被意外修改,可以在相应的形参前面加上类型限定符const。

七、从函数返回字符串指针

1.函数之间的信息交换是通过函数参数和返回值实现。

八、扩充内容

1.const放在类型关键字的前面。

2.const放在类型关键字的后面和*变量名的前面。

3.const放在类型关键字*的后面,变量名的前面。

4.一个const放在类型关键字之前,另一个const放在类型关键字*之后和变量名之前。

这篇关于C语言程序设计(第四版)第十章主要内容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1068525

相关文章

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

如何解决Pycharm编辑内容时有光标的问题

《如何解决Pycharm编辑内容时有光标的问题》文章介绍了如何在PyCharm中配置VimEmulator插件,包括检查插件是否已安装、下载插件以及安装IdeaVim插件的步骤... 目录Pycharm编辑内容时有光标1.如果Vim Emulator前面有对勾2.www.chinasem.cn如果tools工

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

基于Go语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3