高级语言程序设计课程第八次个人作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx

这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/15590

学号:102500305

姓名:赖晓娟

一.编写并运行书本第11章11.13编程练习题目中的第1~3,6,7题。
1.设计并测试一个函数,从输入中获取n个字符(包括空白、制表符、换行符),把结果存储在一个数组里,它的地址被传递作为一个参数。
捕获
注意:在输入n的值12后,用户输入 回车 会被getchar读取作为数组中的第一个字符,导致错误。

2.修改并编程练习1的函数,在n个字符后停止,或在读到第1个空白、制表符或换行符时停止,哪个先遇到哪个停止。不能只使用 scanf()。
捕获2

3.设计并测试一个函数,从一行输入中把一个单词读入一个数组中,并丢弃输入行中的其余字符。该函数应该跳过第1个非空白字符前面的所有空白。将一个单词定义为没有空白、制表符或换行符的字符序列。
image

6.编写一个名为 is_within()的函数,接受一个字符和一个指向字符串的指针作为两个函数形参。如果指定字符在字符串中,该函数返回一个非零值(即为真)。否则,返回0(即为假)。在一个完整的程序中测试该函数,使用一个循环给函数提供输入值。
联想截图_20251204215312

7.strncpy(s1,s2,n)函数把s2 中的n个字符拷贝至 s1 中,截断 s2,或者有必要的话在末尾添加空字符。如果 s2 的长度是n或多于n,目标字符串不能以空字符结尾。该函数返回 s1。自己编写一个这样的函数,名为mystrncpy()。在一个完整的程序中测试该函数,使用一个循环给函数提供输入值。
image

二.编写并运行书本第12章12.9编程练习题目中的第1~3,8,9题。
1.不使用全局变量,重写程序清单 12.4。
image

//pe12-2a.h
image

//pe12-2a.c
image

//pe12-2b.c
image

运行结果
image

3.image

image

9.编写一个符合以下描述的函数。首先,询问用户需要输入多少个单词。然后,接收用户输入的单词,并显示出来,使用 mal1oc()并回答第1个问题(即要输入多少个单词),创建一个动态数组,该数组内含相应的指向char的指针(注意,由于数组的每个元素都是指向char 的指针,所以用于存储 ma1loc()返回值的指针应该是一个指向指针的指针,且它所指向的指针指向 char)。在读取字符串时,该程序应该把单词读入一个临时的char 数组,使用malloc()分配足够的存储空间来存储单词,并把地址存入该指针数组(该数组中每个元素都是指向char 的指针)。然后,从临时数组中把单词拷贝到动态分配的存储空间中。因此,有一个字符指针数组,每个指针都指向一个对象,该对象的大小正好能容纳被存储的特定单词。下面是该程序的一个运行示例:
How many words do you wish to enter? 5
Enter 5 words now:
I enjoyed doing this exercise
Here are your words:
I
enjoyed
doing
this
exercise
image

总结与反思:1.注意输入字符串之前的回车,可以先用getchar吃掉回车。
2.对于malloc动态内存分配,记得用free释放内存。

posted @ 2025-12-08 16:32  Whooooo  阅读(0)  评论(0)    收藏  举报