问题详情

函数ReadDat实现从文件in.dat中读取一篇英文文章存入到无符号字符串数组xx中,请编制函数StrCharJL,其函数的功能是:以行为单位把字符串中的所有字符的ASCII值左移4位二进制位,低位补0,如果左移后,其值小于等于32或大于l00,则原字符保持不变,留在原字符串对应的位置上,否则就把左移后的值再加上原字符的ASCII值,得到新的值仍存入原字符串对应的位置上,之后把已处理的字符串仍按行重新存入无符号字符串数组xx中。最后main函数调用函数 WriteDat把结果xx输出到文件out.dat中。 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 注意:部分源程序存放在test.c文件中。 请勿改动主函数main、读函数ReadDat和输出函数WriteDat的内容。

参考答案
正确答案:【审题关键句】字符的ASCII值左移4位二进制位,低位补0,新值小于等于32或大于100,则原字符保持不变;否则等于左移后的值再加上原字符的ASCII值。 【解题思路】 ①定义无符号字符局部变量tmp和循环整型变量i、j。 ②在第一层for循环中,循环变量i从0开始,依次递增直到其值等于或大于maxline,实现对文章每行字符串的处理。在第二层for循环中,循环变量j从0开始,依次递增直到其值等于strlen(xx[i]),在循环体中,对字符xx[i][j]的ASCII码值左移4位后所得的值保存到变量tmp,再利用if条件语句判断,如果tmp的值大于32且小于等于100,则把tmp的值与xx[i][j]的值相加之和赋给xx[i][j]。 【参考答案】
您可能感兴趣的试题