vlambda博客
学习文章列表

C语言【视频讲解】+【代码】+【真题】免费连载0103

程序设计

    请编写函数fun,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。

    例如,字符串数组中的M个字符串为:

    AAAA

    BBBBBBB

    CC

    则合并后的字符串的内容应是:AAAABBBBBBBCC。

    提示:strcat(a,b)的功能是将字符串b复制到字符串a的串尾上,成为一个新串。

    注意:部分源程序存在文件prog1.c中。

    请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

源代码:

#include <stdio.h>  

#include <string.h>  

#define   M   3  

#define   N   20  

void  fun(char  a[M][N], char  *b)  

{  

  /* 以下代码仅供参考 */  

  int i; *b=0;  

  

}  

main()  

{  char  w[M][N]={"AAAA","BBBBBBB","CC"}, a[100];  

   int i ;void NONO ();  

   printf("The string:\n");  

   for(i=0; i<M; i++)puts(w[i]);  

   printf("\n");  

   fun(w,a);  

   printf("The A string:\n");  

   printf("%s",a);printf("\n\n");  

   NONO();  

  getchar();  

}  

void NONO ()  

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。*/  

  FILE *rf, *wf ;  

  char w[M][N], a[100] ; int i ;  

  rf = fopen("C:\\WEXAM\\000000000000\\in.dat","r") ;  

  wf = fopen("C:\\WEXAM\\000000000000\\out.dat","w") ;  

  for(i = 0 ; i < 10 ; i++) {  

    fscanf(rf, "%s %s %s", w[0], w[1], w[2]) ;  

    fun(w, a) ;  

    fprintf(wf, "%s\n", a) ;  

  }  

  fclose(rf) ; fclose(wf) ;  


文字解析:

本题的考核点是字符串数组、循环语句。

    解题思路:本题的第一个for语句的作用是实现数组的初始化,然后再通过for循环语句,判断该字符串数组当前位置上的字符是否为字符串结束符"\0",若不是,则将该字符串中的每一个字符存入指定数组中,若是"\0",则转到下一个字符串,重复上述操作。

void  fun(char a[M][N], char *b)

{int i,j,d=0;              /*定义整型变量d用于控制字符数组*b的下标变化*/

 for(i=0;i<100;i++)b[i]=0; /*实现数组的初始化*/

 for(i=0,d=0;i<3;i++)    /*通过for循环实现字符数组当前位置上的字符不为"\0"时将该字符串中的每一个字符存入指定数组b中,否则转到下一个字符串,重复上述操作*/

   for(j=0;*(a[i]+j);j++)

     {

      *(b+d)=*(a[i]+j);    

      d++;

      }

}

    最后按ctrl+F5运行程序。



视频解析:⬇⬇⬇


更多学习视频,请关注下方二维码

泽雨网校