"这篇资料是关于PASCAL语言的学习教程,特别关注字符串的函数和过程。教程中列举了Turbo Pascal提供的8个标准函数和过程,包括copy、length、pos、insert、delete、Str、val、upcase,用于处理和操作字符串。此外,还提供了一个示例程序,用于校验和格式化英语日期输入。教程涵盖了PASCAL语言的基础,如赋值语句、输出语句、分支结构、循环、数组、字符串、过程与函数、指针类型和文件等,适合初学者学习。"
在PASCAL语言中,字符串的处理是非常重要的一部分。以下是对标题和描述中提到的几个关键函数和过程的详细说明:
1. **copy(s, m, n)**:这个函数用于从字符串`s`中提取子字符串。它从`s`的第`m`个字符开始,提取`n`个字符。如果`m`超出`s`的长度,返回空串;如果`m+n`超出`s`的长度,会截断超出的部分。
2. **length(s)**:这个函数返回字符串`s`的实际长度,即其中字符的数量。返回值是一个整数。
3. **pos(sub, s)**:此函数在字符串`s`中查找子字符串`sub`的位置。返回`sub`在`s`中的起始位置,类型为byte。如果找不到`sub`,返回0。
4. **insert(sour, s, m)**:在字符串`s`的第`m`个字符位置插入子串`sour`。如果结果字符串超过255个字符,会自动截断。
5. **delete(s, m, n)**:删除`s`中从第`m`个字符开始的`n`个字符。如果`m`超出`s`的长度,不会进行删除;如果`m+n`超出`s`的长度,删除到字符串末尾。
6. **Str(x[:w[:d]], s)**:这个函数将整数或实数`x`转换为字符串`s`。`w`和`d`是可选参数,用于指定字宽和小数位数,类似于带字宽的`write`语句。
7. **val(s, x, code)**:将字符串`s`转换为整数或实数`x`。如果`s`中包含非法字符,`code`存储非法字符在`s`中的下标,否则`code`为0。
8. **upcase(ch)**:将字符`ch`转换为大写。如果`ch`不是小写字母,函数不做任何改变。
在给出的示例程序中,程序用于检查用户输入的日期(格式为月/日/年)是否正确,并将其转换为年.月.日的格式。通过遍历输入字符串,结合上述函数,可以实现这个功能。
整个PASCAL语言基础教程覆盖了从基本语法到高级特性的广泛内容,包括变量、控制结构、数组、字符串处理、过程和函数、指针以及文件操作等,是学习PASCAL语言的全面参考资料。