C语言:输入n和n个字符串,输出其中最短的字符串。若长度相同则输出出现较早的那一个
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言:输入n和n个字符串,输出其中最短的字符串。若长度相同则输出出现较早的那一个相关的知识,希望对你有一定的参考价值。
#include<stdio.h>
#include<string.h>
#include<limits.h>
int main()
int n,b,i,c=INT_MAX;
scanf("%d",&n);
char a[100][100],d[100];
for(i=0;i<n;i++)
gets(a[i]);
b=strlen(a[i]);
if(b<c)
c=b;
strcpy(d,a[i]);
printf("%s",d);
请大家帮我看看哪里有啥问题 谢谢各位了 我只输入两个就结束了 也没有输出
还有 %[^\n] 能解释一下子不
#include<string.h>
#include<limits.h>
int main()
int n,b[100],i,c=INT_MAX,h,min,swap;
char a[100][100],d[100][100];
printf("请输入你要输入几次字符串数据:");
scanf("%d",&n);
for(i=0;i<n;i++)
printf("正在输入第%d个数据:",i+1);
scanf("%s",a[i]);
b[i]=strlen(a[i]);
if(b<c)
strcpy(d[i],a[i]);
min=b[0];
for(h=0;h<n;h++)
if(min>b[h])
min=b[h];
swap=h;
printf("%s\n",a[swap]);
参考技术A scanf后面用fflush(stdin)清除缓冲或者用getchar()也行
C语言中 输入一个字符串,输出最短的单词 求代码,加急
英文还是中文 , 中文就会牵扯中文分词 。 英文就 很简单 以空格变电符号 区分计算长度就可以。追问英文的就行,给一段代码吧啊,这边着急用,谢谢了
追答做的有点 点单 时间太近了。你凑合着用吧。
#include
void main()
char a[256],b[100],c[100];
printf("Input a string:");
gets(a);
int i=0;
int j=0;
int count=0;
int mincount=100;
while (a[i]!='\0')
if( (a[i]>=65 && a[i]=97 && a[i]=48 && a[i]<=57))
b[j]=a[i]; count++;
j++;
else
if(j!=0)
j=0;
if (count<mincount)
for( int z=0;z<count;z++)
c[z]=b[z];
mincount=count;
count=0;
i++;
for(j=0;j<mincount;j++)
printf("%c",c[j]);
printf("\n");
#include <string.h>
#define N 128
int main(int argv,char *argc[])
char str[N];
int i,j,k,t;
printf("plese input string :\\n");
fgets(str,128,stdin);
for(k=50,t=i=0;str[i];i++)
if(str[i]>='A' && str[i]<='Z' || str[i]>='a' && str[i]<='z')
for(j=i+1;str[j]>='A' && str[j]<='Z' || str[j]>='a' && str[j]<='z' || str[j]=='-';j++);
if(k>j-i)
k=j-i,t=i;
i=j;
printf("\\nThe shortest word is '");
for(;str[t]>='A' && str[t]<='Z' || str[t]>='a' && str[t]<='z' || str[t]=='-';t++)
printf("%c",str[t]);
printf("'.\\n");
return 0;
运行样例:
以上是关于C语言:输入n和n个字符串,输出其中最短的字符串。若长度相同则输出出现较早的那一个的主要内容,如果未能解决你的问题,请参考以下文章
一个c语言问题,编写一个函数,从键盘输入一行字符,将此字符串中最长和最短的单词输出