请补充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 [

题目

请补充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);

}


相似考题
更多“请补充main函数,改函数的功能是,把一个二维字符数组每行字符串最大的字符拷贝到字符数组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的内容。


    正确答案:
    【审题关键句】以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,大小写不变,其他字符不变。
    【解题思路】
    ①定义整型循环变量i、j。
    ②在第一层for循环中,循环变量i从0开始,依次递增直到其值等于maxline,实现对文章每行的处理。第二层for循环中,循环变量J从0开始,依次递增直到其值大于或等于strlen(xx[i]),在循环体中,利用if条件语句判断如果xx[i][j]的值为字符’a’,则把xx[i][j]的值设置为字符’2’。否则如果XX[i][D]的值在小写字符’at与’2’之间,则把xx[i][j]的值减1,把其值变成其前一个字符的ASCII码。
    【参考答案】

  • 第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的内容。


    正确答案:
    【审题关键句】以行为单位把字符串中的所有字符的ASCII值左移4位,如果左移后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符仍存入原字符串对应的位置上。
    【解题思路】
    ①首先定义整型循环变量i、j和表示字符串长度的变量str,以及字符局部变量ch。
    ②在第一层for循环语句中,循环变量i从0开始,依次递增直到其值等于maxline,在循环体中,首先对字符串string[i]利用库函数strlen求其长度,把此值赋给变量str。在第二层for循环语句中,循环变量j开始0,依次递增直到其值等于str,把字符string[i][j]的ASCII值左移4位后所得到字符赋给变量ch,再用if语句判断ch的值是否大于32并且小于等于100,如果成立,则把ch的值与string[i][j]的值相加,所得的新值保存在string[i][j]中。
    【参考答案】

  • 第5题:

    请编写函数con(char s1[ ], char s2[ ]),其功能是实现两个字符串的连接(不能使用库函数strcat), 即把字符数组s2中的字符串连接到字符数组s1字符串的后面。 例如main函数中输入"hello",“world”,则最后输出``“helloworld” ;