下列给定程序中函数 fun 的功能是: 逐个比较 p、 q 所指两个字符串对应位置上的字符, 并把 ASCII 值大或相等的字符依次存放到 c 所指的数组中, 形成一个新的字符串。
例如, 若主函数中 a 字符串为“aBCDeFgH”, b 字符串为“Abcd”, 则 c 中的字符串应为“aBcdeFgH”。
请改正程序中的错误, 使它能得出正确的结果。
注意: 部分源程序在文件 MODI1.C 中, 不得增行或删行, 也不得更改程序的结构!
#include <stdio.h>
#include <string.h>
void fun(char *p,char *q,char*c)
{
/* * * * * * * * * * * *found* * * * * * * * * * * */
int k=1;
/* * * * * * * * * * * *found* * * * * * * * * * * */
while(*p!=*q)
{if(*p<*q)c[k]=*q;
else c[k]=*p;
if(*p)p++;
if(*q) q++;
k++;
}
}
main( )
{char a[10]="aBCDeFgH",b[10]="ABcd",c[80]={´\0´};
fun(a,b,c);
printf("The string a:");puts(a);
printf("The string b:");puts(b);
printf("The result:");puts(c);
}
int k=0 while(* pf||*q)
本题考查: 变量初始化, 需根据题意确定变量含义, 然后对其进行初始化操作;while 循环语句。
(1)变量 k 存放数组 c 的下标, 因此应初始化为 0。
(2)while 循环语句的循环条件是判断两个字符串是否到达结尾。