字符串的长度

ajskfhdshg?上面这段字符串的长度有多少?恐怕我们需要一个一个的去数,假设我们需要知道大量数据的长度该怎么办呢?接下来我们就来实现这个字符串的长度问题解决方案。

【问题】:

下列给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。ss所指字符串数组中共有M个字符串,且串长小于N。

请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

【程序】:

#include

#include

#define M 5

#define N 20

int fun(char (*ss)[N], int *n)

{ int i, k=0, len= N;

/**********found**********/

for(i=0; i

{ len=strlen(ss[i]);

if(i==0) *n=len;

/**********found**********/

if(len ___2___ *n)

{ *n=len;

k=i;

}

}

/**********found**********/

return(___3___);

}

main()

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

int n,k,i;

printf("\nThe original strings are :\n");

for(i=0;i

k=fun(ss,&n);

printf("\nThe length of shortest string is : %d\n",n);

printf("\nThe shortest string is : %s\n",ss[k]);

}

------------------------------

【参考答案】

(1) M  (2)

【解析】:

本题考查:for循环语句的循环条件;if语句条件表达式;return语句完成函数值的返回。

填空1:题目指出ss所指字符串数组中共有M个字符串,所以for循环语句循环条件是i

填空2:要求求长度最短的字符串,*n中存放的是已知字符串中长度最短的字符串的长度,这里将当前字符串长度与*n比较,若小于*n,则将该长度值赋给*n,因此if语句的条件表达式为len

填空3:将最短字符串的行下标作为函数值返回,变量k储存行下标的值。

通过以上问题以及答案,我想我们应该已经可以掌握去如何知道一个夫字符串的长度,同理,通过循环我们就可以知道其余任何一个数据的长度。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180711G189MY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券