输入n个字符串,输出长度最小的字符串

/*本题要求编写程序,针对输入的N个字符串,输出其中最小的字符串。输入格式:输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。输出格式:在一行中用以下格式输出最小的字符串:Min is: 最小字符串输入样例:5

Cheng

Jiang

Wang

Xie

Miao

输出样例:Min is: Xie/*

1.明确目标 输出长度最短的字符串,

故应该定义字符数组并用stelen()函数计算输入字符串的长度。定义整形变量用于存储字符串的长度,便于后续比较,定义整形n,输入值,来判断字符数组的个数。比较后应置空字符串长度大的字符数组。可以使用strcpy()来实现置空,运用循环进行逐个比较。最后输出结果。具体代码如下:

 

#include
#include
#include
main()
{
char str1[80],str2[80],str3[80];
int n,a,b;
scanf("%d\n",&n);
scanf("%s\n",str1);//两个"\n"不能省略,否则输入数字后按"enter",会使str1[ ]置空,导致结果为空值。
a=strlen(str1);//计算str1的长度
while(n>1)
{
gets(str2);
b=strlen(str2);
if(a>b) strcpy(str1,str2);//将最短的字符串复制到str1
strcpy(str2,str3);//将str2置空
a=strlen(str1);//计算str1的长度
n--;//循环跳出的必要条件
}

printf("Min is: %s",str1);//输出最短字符串
}
 

你可能感兴趣的:(输入n个字符串,输出长度最小的字符串)