请补充main函数,改函数的功能是,把一个二维字符数组每行字符串最大的字符拷贝到字符数组s中。
例如,如果str[3]={"efjh","cfimls","owys"},则s;"hsy"。
注意:部分源程序给出如下.
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。
试题程序:
inc lude<stdio, h>
main()
{
int i=0;
char *str [3] ={ "efjh", "efknls",
"owys" };
char **p;
char s [8];
clrscr 0;
【 】;
for (i=O; i<3; i++)
{
s [i] =*p [i];
while (*p [i] )
{
if (S [i] <*p [i] )
s [i] =*p[i];
【 】;
}
}
【 】;
printf(" new string \n");
puts (s);
}
第1题:
函数ReadDat实现从文件in.dat中读取一篇英文文章存入到字符串数组XX中,请编制函数ConvertCharD,其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母a,则改写成字母z,其他字符保持不变。把已处理的字符串仍按行重新存入字符串数组xx中。最后main函数调用函数WriteDat把结果xx输出到文件out.dat中。例:原文:Adb.Bcdza abck.LLhj结果:Aca.Bbcyzzabj.LLgi原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 注意:部分源程序存放在test.c文件中。 请勿改动主函数main、读函数ReadDat0和输出函数WriteDat的内容。
第2题:
请补充main()函数,该函数的功能是:把一个二维字符
数组每行字符串中最大的字符复制到字符数组s中。
例如,如果arr[3]={″hoih″,″yufui″,″xgf″),则str=″oyx″。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填人所编写的若干表达式或语句。
试题程序:
【1】p=arr【2】p[i]++【3】str[i]=ˊ\0ˊ
【解析】由程序可知,变量P指向的二维数组的首地址,因此【1】处填“p=arr”;要找出二维数组中每一行的最大字符,就要检查每一行的每一个字符,因此【2】处填“p[i]++”;最后要为得到的结果字符串加上结束符,因此【3】处填“str[i]=ˊ\0ˊ”。
第3题:
请编写函数cpy(char s1[ ], char s2[ ]),其功能是实现字符串的复制(不能使用库函数strcpy), 即把字符数组s2中的字符串复制到字符数组s1中。 例如main函数中输入"hello",“world”,则最后输出``world” ;
第4题:
函数Rdata实现从文件in.dat中读取一篇英文文章存入到字符串数组string中,请编写函数CharLeft,其功能是:以行为单位把字符串中的所有字符的ASCII值左移4位,如果左移后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组string中,最后调用函数Wdata,把结果string输出到文件out.dat中。 原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。注意:部分源程序已经给出。 请勿改动主函数main、读数据函数Rdata和输出数据函数Wdata的内容。
第5题:
请编写函数con(char s1[ ], char s2[ ]),其功能是实现两个字符串的连接(不能使用库函数strcat), 即把字符数组s2中的字符串连接到字符数组s1字符串的后面。 例如main函数中输入"hello",“world”,则最后输出``“helloworld” ;