第六章 - c语言中的数组(中)

C Primer Plus (第五版) 第六章 编程练习 答案 C Primer Plus 第五版 第六章 编程练习 答案 阅读详情
三、一维字符数组和字符串
  1. 一维字符数组和其他一维数组语法相同

    (1) char str1[90]; // 定义可以存储80个字符的数组
    (2) char str2[5] = {'H','e','l','l','o'}; // 定义存储5个字符的数组并初始化
    (3) char str3[6] = {'H','e','l','l','o'}; 
        // 定义存储6个字符的数组并完成2前5个数据的初始化,最后一位默认为 0
        char str3[6] = {'H','e','l','l','o',0}; // 等价语句 
    (4) char str3[] = {'H','e','l','l','o','\0'};  // 数组长度为6,最后一位ASCII为0
    
  2. 字符串

    (1) 理解:字符串常量是用一对双引号引起来的一个或是多个字符,它有一个结束的标志'\0'。
    (2) 例如:"hello" 由6个字符组成,'h'、'e'、'l'、'l'、'o'、'\0'
    (3) 定义:char str1[]= "hello";
             char str2[]= {"hello"};
             char str3[6]= "hello";
         注意:字符串由有效字符和字符串结束符'\0'组成。
    (4) 字符串的输入和输出:
        a. gets(str); // 输入字符串,以回车结束
        b. puts(str); // 将字符串输出
    
    #include<stdio.h>
    
    void main(){
    	char str[6];
    	gets(str);  // 输入一个字符串
    	puts(str);  // 将字符串输出
    } 
    
    -- 编译函数,连接两个字符串为一个字符串进行输出。
    
    #include<stdio.h>
    
    void main(){
    	char s[20] = "Learn ";
    	concat(s,"C Language");
    	printf("两个字符串拼接后的结果是:\n%s",s);
    } 
    
    void concat(char s1[],const char s2[]){
    	int p,q;
    	p =0;
    	while(s1[p]!='\0') p++;
    	for(q=0;s2[q]!='\0';q++){
    		s1[p++] = s2[q];
    	}
    	s1[p]='\0';
    }
    
  3. 字符串中创建的函数:

    注意:C语言的 string.h标准库包含许多字符串函数,以下为常见字符串创建的函数:
    
    (1) strlwr(str):将字符串大写字母转换为小写字母
    (2) strupr(str):将字符串小写字母转换为大写字母
    (3) strcmp(str1,str2):比较字符串s1和s2,两个字符串长度且对应字符均相同,则函数返回0,否则返回1或
         是-1: 返回0,表示 s1字符串和s2字符串相等
               返回1,表示 s1字符串 大于 s2字符串相等
               返回-1,表示 s1字符串 小于 s2字符串相等
    (4) strcpy(str1,str2):将str2复制给str1
    (5) strcat(str1,str2):将str2追加到str1的后面
    (6) strstr(str1,str2):查找字符串str1中是否出现了str2(是否为子串),如果出现则返回str2在str1中出现位置的地址;否则返回null-空地址,值为0.
    
    #include<stdio.h>
    #include<string.h>
    
    void main(){
    	char str[] = "Hello";
    	char str2[] = "happy day";
    	printf("%s\n",strlwr(str)); // 大写-》小写 
    	printf("%s\n",strupr(str)); // 小写-> 大写 
    	printf("%d\n",strcmp(str,str2)); // 比较两个字符串长度与内容是否相等 
    	printf("%s\n",strcpy(str,"world"));// world,赋值字符串 
    	printf("%s\n",str); // world,str被上一步复制为 world
    	printf("%s\n",strcat(str,str2)); //worldhappy day,将 str2追加到str上
    	printf("%d\n",strstr("hello world","worldr"));// 查找子串 
    }
    
第六章和第七章(循环结构和用函数解决问题)习题总结 第六章 利用数组处理批量数据 我们之前几章节中的程序中使用的变量都属于基本类型,例如整型,字符型,浮点型数据。对于简单的问题,用这些数据类型完全可以 ,但有些数据需要特殊处理,这就需要用到我们今天要讲的数组了。那么什么是数组呢?数组则是一批具有同名的,同属性的数据。数组也包括一维数组和二维数组,用类型符数组名[常量表达式]来定义 由此我们须知道: (1)数组是一组有序数据的集合。 (2)用一个... 阅读详情

相关推荐

C语言入门(大一笔记)数组篇

c 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容..

weixin_51673920的博客 8222

第六章 - c语言中的数组

数组:一次性定义多个连续的同类型的空间,同时存储多个数据,并统一管理。引入:目前变量都是存储单个数据,无法进行统一处理多个数据。声明数组:数据类型 数组名[数组长度];数组的要素:数据类型和数组长度。

百知_zmj的博客 503

第六章 C语言数组_C语言数组是静态的,不能插入或删除元素

在C语言中,数组一旦被定义后,占用的内存空间就是固定的,容量就是不可改变的,既不能在任何位置插入元素,也不能在任何位置删除元素,只能读取和修改元素,我们将这样的数组称为静态数组。 反过来说,如果数组在定义后可以改变容量,允许在任意位置插入或者删除元素,那么这样的数组称为动态数组。 PHP、JavaScript 等解释型的脚本语言一般都支持动态数组,而 C、C++ 等编译型的语言一般不支持动态数组。 总之,C语言中的数组是静态的,一旦定义后长度就不能改变了,大家要注意这一点,不要尝试去插入或删除元素。 如果由

qq_43205256的博客 3139

第六章 - c语言中的数组-二维数组(下)

二维数组案例:杨辉三角形。

百知_zmj的博客 504

Python逆向实战:突破PDD长连接抓包的技术解析

本文详细解析了如何通过Python逆向技术突破PDD长连接抓包的难点,包括分析PDD的网络机制、绕过SSL证书验证以及完整抓包实战流程。文章重点介绍了使用Frida和VAXposed工具解决长连接和SSL Pinning问题,并提供了Python代码示例和数据分析方案,帮助开发者高效抓取PDD数据。

weixin_28678151的博客 1222

深入理解搜索引擎——搜索评价指标

    搜索引擎,在做好query理解、索引召回以及排序模型之后,就能直接推上线了吗?答案是否定的,还需对其性能和质量进行评测。性能无非是对时间和空间的运行效率作评测,不细讲,今天讲讲搜索引擎的质量评测。通过质量评测,可根据评测结果不断的进行改进和研究,也可以验证搜索引擎在真实环境中运行时的实际效果。因此,搜索引擎的质量评测对于整个系统的研制和发展是至关重要的。     那么有哪些指标可以评估搜索引擎的结果质量呢?最广为人知的

我是药老的博客 4485

将一个数组中的值按逆序重新存放,谭浩强《c语言程序设计》第六章第五题

题目 本题是谭浩强《c语言程序设计》第六章第五题 题目:将一个数组中的值按逆序重新存放。 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj 一、解题思路 思路: 1.首先我们给一个数组,先把这个数组输出出来 2.将数组中的值逆序存放,也就是将前半部分与后半部分的元素逐个对调。 3.可以采用while循环,条件为左边l<右边r。然后l++,r–; 4.把交换后的数组输出即可。 二、代码部分 1.引入库 代码如下(示例): #include<stdio

立志冲海大 9434

NY8A053E 例程 之 PWM Ouput

更多关于NY8A053E的相关例程请留言!

倪彬笑阳的博客 2924

Anyview第六章答案

DC06PE01 #include "allinclude.h" int commonAncestor_0601(SqBiTree T, int i, int j) /* 求出完全二叉树T中编号i和j的两个结点的 最近公共祖先结点的编号 i和j的范围不合理,则返回0 */ { if (i < 1 || i > T.lastIndex || j < 1 || j > T.lastIndex) return 0; // i和j的范围不合理 wh.

weixin_51477091的博客 1981

Flutter热更新实战:Shorebird从安装到发布补丁的完整流程(含iOS/Android差异解析)

本文详细介绍了Flutter热更新工具Shorebird的完整使用流程,包括安装、发布补丁及iOS/Android平台差异解析。Shorebird作为Flutter官方未提供的Code Push解决方案,能快速修复线上问题,支持合规性保障和性能优化,特别适合紧急修复场景。文章还涵盖了国内CDN加速配置和最佳实践,帮助开发者高效实现热更新。

butter的博客 1078

告别混乱!在Unity中为Best MQTT v3设计清晰的服务层:配置、连接、订阅发布模块拆分指南

本文详细介绍了如何在Unity中使用Best MQTT v3插件构建清晰的服务层架构,包括配置管理、连接服务、订阅管理和发布服务的模块化拆分。通过解耦设计、事件驱动和接口抽象,提升代码可维护性和可测试性,适用于物联网和实时通信开发场景。

weixin_30576827的博客 357

第六章 c语言数组,【笔记】第六章 数组(C语言)

本帖最后由 sphao 于 2017-7-30 18:00 编辑第六章 数组特点: 同一数组中的所有元素都属于 同一种数据类型, 数组元素用数组名和相应的下表来确定方法: 一个数组元素其实就是一个变量(可以称为带下标的变量)一 一维数组的定义和引用(只有一个下标)1. 一维数组定义格式:类型名 数组名[常量表达式];定义数组有四个注意:(1)数组名属于用户自定义标识符, 要遵守标识符命名规则(2)...

weixin_39841825的博客 341

RouterOS网桥VLAN实战:从零构建安全隔离的二层虚拟网络

本文详细讲解了如何在RouterOS上利用网桥和VLAN功能,从零开始构建安全隔离的二层虚拟网络。通过分步实战演示,涵盖核心概念、网桥创建、PVID设置、VLAN规则配置及安全过滤,帮助网络管理员实现办公、访客与服务器网络的逻辑隔离与灵活管理,提升网络安全性。

u9v0w的博客 504

第六章 C语言数组_C语言变长数组:使用变量指明数组的长度

在《C语言的三套标准:C89、C99和C11》一节中我们讲到,目前经常使用的C语言有三个版本,分别是 C89、C99 和 C11。C89(也称 ANSI C)是较早的版本,也是最经典的版本,国内大学几乎都是以该版本为基础进行授课。C99 和 C11 是后来对 C89 的升级,增添了一些新内容(不多),语法更加灵活了,同时兼容 C89。 各种编译器都能很好地支持 C89 标准,但对 C99 的支持却不同:开源组织的 GCC 和 Xcode 使用的 LLVM/Clang 已经支持了大部分(几乎全部)的 C99

qq_43205256的博客 1万+

刷爆 Java 基础!1000 道经典面试题精解第一篇【序列化】

自定义序列化 / 反序列化的实现方式在实现接口的类中,手动重写和方法在方法内优先调用执行默认序列化逻辑;追加自定义逻辑(如敏感数据加密、临时字段赋值、兼容旧版本数据等)。// 序列化ID,保证兼容性// 敏感字段,默认不序列化,自定义处理// 自定义序列化// 执行默认序列化:写入username// 自定义逻辑:密码加密后写入// 自定义反序列化// 执行默认反序列化:读取username// 自定义逻辑:读取加密密码并解密// 模拟加密/解密工具方法。

七叔的博客 191

YOLOv8改进:全网原创首发 | 新颖的多尺度卷积注意力(MSCA),即插即用,助力小目标检测 | NeurIPS2022

多尺度卷积注意力(MSCA),有效地提取上下文信息;1)作为注意力MSCA使用;

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 3842

谭浩强 C语言程序设计第五版 第六章 习题 答案

谭浩强 C语言程序设计第五版 第六章 习题 答案 有问题可以在下方留言哦 1.用筛选法求100以内的素数。 #include <stdio.h> #include <math.h> int main() { int i,j,a[100],b[100]; for (i=1;i<=100;i++) { a[i]=i+1; ...

月已满西楼的博客 6万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

C语言程序设计第五版 谭浩强 第六章 答案

C语言程序设计第五版 谭浩强 第六章 答案 1.用筛选法求100以内的素数。 #include <stdio.h> #include <math.h> void main() { int i,j,a[100],b[100]; for (i=1;i<=100;i++) { a[i]=i+1; for (j=1;...

月已满西楼的博客 3万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C语言 第六章 数组

C语言 数组

chasing_dreamsss的博客 1189

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

第六章 C语言数组_什么是数组?C语言数组的基本概念

数组(Array)就是一些列具有相同类型的数据的集合,这些数据在内存中依次挨着存放,彼此之间没有缝隙。 数组不是C语言的专利,Java、C++、C#、JavaScript、PHP 等其他编程语言也有数组。 C语言数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。 数组的概念和定义 我们知道,要想把数据放入内存,必须先要分配内存空间。放入4个整数,就得分配4个int.

qq_43205256的博客 2961

C语言数组详解

数组是编程中一种基础且重要的数据结构,用于存储一系列相同类型的元素,这些元素在内存中是连续存放的。在 C 语言中,数组可以存储任何数据类型的元素,如整数、浮点数、字符等。了解数组的工作原理及其特性对于编写有效和高效的程序至关重要。

TENET123的博客 1539

C语言程序设计第六章例题(数组)

C语言程序设计第六章例题例6.1 对十个元素依次赋值0,1,2,3,4,5,6,7,8,9,要求按逆序输出例6.2 用数组来处理斐波那契数列例6.3 有十个地区的面积,要求按从小到大输出例6.4 将一个二维数组的行和列的元素互换例6.5 有一个3*4的数组,要求输出其中最大的数,以及其行号和列号例6.6 输出一个已知的字符串例6.7 输出一个菱形图例6.8 输入一行字符,判断有多少个单词例6.9 ...

qq_44404435的博客 5132

第六章 C语言数组_C语言二维数组的定义、初始化、赋值

上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组。在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以确定它在数组中的位置。本节只介绍二维数组,多维数组可由二维数组类推而得到。 二维数组的定义 二维数组定义的一般形式是: dataType arrayName[length1][length2]; 二维数组在概念上是二维的,但在内存中是连续存放的;换句话说,二维数组的各个元素是相互挨着的,彼此之间没有缝隙。那么,如何在线性内存中存放二.

qq_43205256的博客 1401

【维生素C语言】第六章 - 指针

本章是指针部分的开始,将对C语言中非常重要的指针进行讲解。本章结束后读者可对应指针进阶部分进行进一步学习。

有道无术, 术尚可求。有术无道, 止于术。 1万+

明解C语言入门篇 第六章 函数 练习题答案

创建一个函数search idx,将和有n个元素的数组v中的key相等的所有元素的下标存储在数组idx中,返回和key相等的元素的个数。例如,如果v中所接收的数组的元素是{1,7,5,7,2,4,7),key为7的话,{1,3,6}就会被存储在idx中,并返回3。创建函数put_count,显示被调用的次数(右面显示的是调用3次函数put count的运行结果)创建一个函数,将4行3列矩阵a和3行4列矩阵b的乘积,存储在3行3列矩阵c中。创建一个函数,返回元素个数为n的int 型数组√中的最小值。

weixin_47103329的博客 653

第六章 C语言数组_C语言数组的越界和溢出

数组越界 C语言数组是静态的,不能自动扩容,当下标小于零或大于等于数组长度时,就发生了越界(Out Of Bounds),访问到数组以外的内存。如果下标小于零,就会发生下限越界(Off Normal Lower);如果下标大于等于数组长度,就会发生上限越界(Off Normal Upper)。 C语言为了提高效率,保证操作的灵活性,并不会对越界行为进行检查,即使越界了,也能够正常编译,只有在运行期间才可能会发生问题。请看下面的代码: 运行结果: a[-2]=-858993460 a[-1]=-858

qq_43205256的博客 3085
上一篇: 第六章 - c语言中的数组
下一篇: 第六章 - c语言中的数组-二维数组(下)
百知_zmj
博客等级 码龄8年 590粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值