zoukankan      html  css  js  c++  java
  • 计算机二级-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循环

    }

  • 相关阅读:
    mysql 5.6
    mysql5.7 二进制包安装
    centos 6 编译安装httpd-2.4
    mysql 5.5源码包安装
    BZOJ4945 & 洛谷3825 & UOJ317:[NOI2017]游戏——题解
    BZOJ4943 & 洛谷3823 & UOJ315:[NOI2017]蚯蚓排队——题解
    BZOJ3435 & 洛谷3920 & UOJ55:[WC2014]紫荆花之恋
    BZOJ5343 & 洛谷4602 & LOJ2555:[CTSC2018]混合果汁——题解
    真·APIO2018滚粗记
    BZOJ4518:[SDOI2016]征途——题解
  • 原文地址:https://www.cnblogs.com/ming-4/p/10242834.html
Copyright © 2011-2022 走看看