大学c语言实验12,C语言实验12.doc

C语言实验12

国脉信息学院C语言实验报告

2012级 软件1201班2013年5月25日

姓名*** 学号

(一)

P319-2

1、实验题目

修改并测试练习1中的函数,使得可以在n个字符后,或第一个空格、制表符、换行符后停止读取输入,由上述情况中最先被满足的那个终止读取(不能用scanf()函数)。

2、设计思路

需要跳过输入n之后的换行符。

利用getchar函数的特性遇到换行符结束添加判断是否为空格

如果为空格则跳出输入,字符串数组尾端添加空字符

3、最终程序截图

4、错误调试分析

5、运行结果截图

P319-3

1、实验题目

设计并测试一个函数,其功能是读取输入行里的第一个单词到数组,并丢掉该行中其他的字符。一个单词的定义是一串字符,其中不含空格、制表符和换行符。

2、设计思路

利用scanf()的特性遇到空格符,制表符,换行符时结束输入。

%10s中的10可有可无只是一般单词不超过10个字符

3、最终程序截图

4、错误调试分析

5、运行结果截图

P319-5

1、实验题目

编写一个函数is_witlun()。它接受两个参数,一个是字符,另一个是字符串指针。其功能是如果字符在字符串中,就返回一个非O值(真);如果字符不在字符串中,就返回O值(假)。在一个使用循环语句为这个函数提供输入的完整程序中进行测试。

2、设计思路

当指针内的字符不为空字符且与查找字符不同时

指针移动到下一位置,再次进行比较。

3、最终程序截图

4、错误调试分析

5、运行结果截图

P319-6

1、实验题目

strncpy (sl,s2,n)函数从s2复制n个字符给sl,并在必要时截断s2或为其填充额外的空字符。如果s2的长度等于或大于n,目标字符串就没有标志结束的空字符。函数返回sl。自己编写这个函数,并在一个使用循环语句为这个函数提供输入的完整程序中进行测试。

2、设计思路

函数内设置一个指针指s3向目标字符串数组的首元素

将s2首元素赋给(*s3)s1

如果(*s3)s1不为空字符,指针s2移动一位。

否则指针s3移动到s1的下一个元素

3、最终程序截图

4、错误调试分析

5、运行结果截图

P319-7

1、实验题目

编写一个函数string_in(),它接受两个字符串指针参数。如果第二个字符串被包含在第一个字符串中,函数就返回被包含的字符开始的地址。例如,string_in("hats","at")返回hats中a的地址,则,函数返回空指针。在一个使用循环语句为这个函数提供输入的完整程序中进行测试。

2、设计思路

函数内设置一个指针s指向s1的首元素。

设置循环利用strchr判断s(s1)与s2是否相同,如果不相同并移动s指针,这样的话,s就变成了首元素与s2相同的字符串数组 与此同时利用strncmp()判断字符串s里的前n个字符内是否与s2相同。

3、最终程序截图

4、错误调试分析

5、运行结果截图

P319-8

1、实验题目

编写一个函数,其功能是使输入字符串反序。在一个使用循环语句为这个函数提供输入的完整程序中进行测试。

2、设计思路

函数先统计字符串数组内有多少个字符

然后利用中间变量前后字符对调。

3、最终程序截图

4、错误调试分析

5、运行结果截图

P319-9

1、实验题目

编写一个函数。其参数为一个字符串,函数删除字符串中的空格。在一个可以循环读取的程序中进行测试,直到用户输入空行。对于任何输入字符串,函数都应该适用并可以显示结果。

2、设计思路

函数内设置嵌套循环,当字符元素为空格符时,将后面的元素全部向前移动一位。

3、最终程序截图

4、错误调试分析

5、运行结果截图

分割线

阅读与提高

(一)

1、实验题目

编写程序:显示一个月的每日提醒列表。用户输入一系列提醒,每条提醒都要有一个前缀来说明是一个月中的哪一天,当用户输入的是0而不是有效的日期时,程序会显示录入的全部提醒的列表,按日期排序的。scanf()读入到整型变量中,然后调用sprintf函数把日期转换成字符串格式,存到一个日期的一维字符数组里。

读取提醒(有长度限制)时,可以另外写一个读一行字符串的函数,函数原型为:int read_line(char str[],int n),先把提醒存放到一条提醒的一维字符数组中。

另需一个二维字符数组,用来集中存放日期和提醒(此时日期和提醒没有分开存放,都存在二维字符数组的某一行)。具体实现:边比较日期(因为日期已转成字符串,所以用strcmp函数),边把该日期和对应的提醒存到一个二维字符数组的某一行(用strcpy函数把日期复制到二维数组某一行,再用strcat函数把提醒“连接”到该行后面)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值