跳转到内容

编程基础/实践:字符串和文件

来自维基教科书,开放的书本,开放的世界

章节摘要

[编辑 | 编辑源代码]
  • 字符串 - 通常用于显示给用户或作为用户输入的单个数字或字母的数组。
  • 数组 - 具有相同数据类型且具有单个标识符名称的元素的顺序集合。
  • 字符串函数 - 字符串函数用于计算机编程语言中,用于操作字符串或查询有关字符串的信息。
  • 字符串格式化 - 字符串格式化使用字符串插值(变量替换)的过程来评估包含一个或多个占位符的字符串文字,从而产生一个结果,其中占位符被替换为它们对应的值。
  • 文件输入输出 - 计算机文件是计算机资源,用于将数据离散地记录在计算机存储设备中。通过使用计算机程序,人们可以打开、读取、更改和关闭计算机文件。计算机文件可以重新打开、修改和复制任意次数。
  • 从文本文件加载数组 - 从文本文件加载数组需要几个步骤,包括:打开文件、读取记录、解析(拆分)记录到字段、将字段添加到数组以及关闭文件。
  • 错误处理 - 预计程序运行时可能导致错误的条件。
  • 动态/静态内存 - 分别与局部和全局范围相关的内存。

复习问题

[编辑 | 编辑源代码]
  1. C++ 中的字符数据类型使用双引号,例如:char grade = “A”;
  2. Sizeof 是一个运算符,它告诉您数据类型在存储中占用多少字节。
  3. Typedef 帮助听障人士,是编程语言中为学习障碍人士提供的标准辅助功能之一。
  4. 为了节省空间,在定义变量时应使用序列运算符。
  5. 文件规范指的是非常小的(像灰尘一样)文件。
  6. 设备令牌是操作系统赋予您的程序的一个特殊非零值,与您请求打开的文件相关联。
  7. 字符串长度和存储由编译器或解释器处理,而不是用户或程序员。
  8. 字符串既可以是文字常量,也可以是变量。
  9. 包含字符串值的数组可以以与单个字符串相同的方式编辑。
  10. 程序只能逐行读取文件并一次处理一条记录。

答案

  1. 错误
  2. 正确
  3. 错误 - Typedef 用于为任何现有数据类型分配备用名称,这主要用于用户定义的数据类型。
  4. 错误
  5. 错误
  6. 正确
  7. 正确
  8. 正确 - 文字常量是值,可以是字符串。
  9. 正确
  10. 错误
  1. 描述允许对字符串数据类型执行的常规操作。
  2. 描述为什么一元正运算符毫无价值。
  3. 描述一元负运算符是如何工作的。
  4. 描述(在您选择的语言中)您将如何
    • 将文本更改为全大写
    • 从给定字符串中删除字母“b”。
    • string = "Hey buddy!"
  5. 描述您可以读取文件内容的不同方式。
  6. 描述字符串操作与变量操作的不同之处

使用伪代码、流程图工具或您选择的编程语言完成以下活动。为输入、每种处理类型和输出使用单独的函数。通过传递参数和返回结果来避免全局变量。创建测试数据以验证每个程序的准确性。在程序顶部添加注释,并包含对所用资源的引用。

字符串活动

[编辑 | 编辑源代码]
  1. 创建一个程序,要求用户输入包含名字和姓氏的一行文本,例如 Firstname Lastname。使用字符串函数/方法解析该行并将姓名以姓氏、名字首字母的形式打印出来,例如 Lastname, F.。在名字首字母后包含一个句号。处理无效输入错误,例如额外的空格或缺少姓名部分。
  2. 创建一个程序,要求用户输入一行文本。使用字符串函数/方法删除开头、结尾和重复的空格,然后反向打印该行文本。例如
       the   cat   in   the   hat   
    tah eht ni tac eht
  3. 创建一个程序,要求用户输入一行逗号分隔值。它可以是一系列测试分数、姓名或任何其他值。使用字符串函数/方法解析该行并将每个项目打印在单独的行上。在打印时删除逗号以及每个项目中任何开头或结尾的空格。
  4. 创建一个程序,要求用户输入一行文本。然后要求用户输入每行要打印的字符数、要打印的行数和滚动方向(向右或向左)。使用给定的行文本,根据需要重复文本以填充给定的每行字符数。然后打印请求的行数,每次打印行时将整行的内容向左或向右移动一个字符。第一个或最后一个字符将被移位/追加到字符串的另一端。例如
    Repeat this. Repeat this.
    epeat this. Repeat this. R
    peat this. Repeat this. Re

文件活动

[编辑 | 编辑源代码]

注意:以下每个活动仅使用代码来读取文件。无需使用代码创建文件。

  1. 使用文本编辑器或 IDE,将以下姓名和等级分数列表复制并保存为名为 scores.txt 的文本文件
    Name,Score
    Joe Besser,70
    Curly Joe DeRita,0
    Larry Fine,80
    Curly Howard,65
    Moe Howard,100
    Shemp Howard,85
    创建一个程序,根据 scores.txt 中的输入显示最高分、最低分和平均分。验证文件是否存在,然后使用字符串函数/方法解析文件内容并将每个分数添加到数组中。显示数组内容,然后计算并显示最高分、最低分和平均分。将平均值格式化为两位小数。请注意,该程序必须适用于文件中给定的任何分数数量。不要假设始终有六个分数。
  2. 创建一个程序,根据 scores.txt 中的输入显示最高分、最低分和平均分。验证文件是否存在,然后使用字符串函数/方法解析文件内容并将每个分数添加到数组中。显示数组内容,然后计算并显示最高分、最低分和平均分。将平均值格式化为两位小数。如果文件格式不正确,请包含错误处理。请注意,该程序必须适用于文件中给定的任何分数数量。不要假设始终有六个分数。
  3. 创建一个程序,要求用户输入包含 HTML 标签的文本/HTML 文件的名称,例如
    <p><strong>This is a bold paragraph.</strong></p>
    验证文件是否存在,然后使用字符串方法搜索并删除文本中的所有 HTML 标签,并将每个删除的标签保存在数组中。显示未标记的文本,然后显示删除的标签数组。例如
    This is a bold paragraph.
    <p>
    <strong>
    </strong>
    </p>
  4. 使用文本编辑器或 IDE,根据以下格式创建用于测试的姓名和地址文本文件
    Firstname Lastname
    123 Any Street
    城市,州/省/地区 邮政编码
    地址之间包含空行,且文件至少包含三个地址。创建一个程序,验证文件是否存在,然后处理文件并将每个地址显示为以逗号分隔的值,格式如下
    姓氏, 名字, 地址, 城市, 州/省/地区, 邮政编码

参考文献

[编辑 | 编辑源代码]
华夏公益教科书