• 计算机二级-C语言-程序填空题-190109记录-对二维字符串数组的处理


    //给定程序,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长<N。

    //重难点:先把第一个字符串记录为最长,然后再遍历替代最长的。处理二维字符串数组需要双重循环,循环处理的时候什么时候‘+1’什么时候不加。

    #include <stdio.h>

    #include <string.h>

    #define M 5

    #define N 20

    void fun(char (*ss)[N])

    {

      int i,j,n,len=0;

      for(i=0;i<M;i++)

      {

        n=strlen(ss[i]);

        if(i==0)  len=n;//先记录第一个字符串为最长

        if(n>len)  len=n;//遍历,寻找最长的

      }

      for(i=0;i<M;i++)

      {

        n=strlen(ss[i]);

        for(j=0;j<len-n;j++)

          ss[i][n+j]='*';//注意是否+1

        ss[i][n+j+1]='';//这里加一,因为for循环中,判断到第二个条件不成立,那么最后一次j++就不会执行。

      }

    }

    main()

    {

      char ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};

      int i;

      printf("The original string are : ");

      for(i=0;i<M;i++)  printf("%s ",ss[i]);

      printf(" ");

      fun(ss);//传参,二维数组名(首地址)

      printf("The result is: ");

      for(i=0;i<M;i++)  printf("%s ",ss[i]);//二维字符串数组,输出的时候,只需要一个for循环

    }

  • 相关阅读:
    《人月神话》读后感第一篇
    MD5+Salt值
    java第十三周测试记录
    今天的问题上上周考试也遇到了,解决方案在文章中。
    Jsp俩大内置对象学习
    十二周周四学术交流会报告
    web界面直连MySql数据库
    抽象类的知识
    isinstance与type的区别
    三级菜单
  • 原文地址:https://www.cnblogs.com/ming-4/p/10242834.html
Copyright © 2020-2023  润新知