C语言题目找出最长的字符串. 输入5个字符串,输出最长的那个字符串。输入字符串调用scanf()
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言题目找出最长的字符串. 输入5个字符串,输出最长的那个字符串。输入字符串调用scanf()相关的知识,希望对你有一定的参考价值。
只要求输出最长的,所以没有必要把5个字符串都存储下来。举例如下:
#include "stdio.h"
#include "string.h"
int main(void)
char a[100],la[100],i;
printf("please enter 5 strings...\\n");
for(*la='\\0',i=0;i<5;i++)
if(scanf("%s",a),strlen(a)>strlen(la))//总是保留较长的
strcpy(la,a);
printf("The longest string is %s\\n",la);
printf("\\n");
return 0;
参考技术A #include <stdio.h>
#define N 200
int main()
int i,tmp;
char str[5][N];
printf("please input 5 strings:\n");
for(i=0;i<5;i++)
scanf("%s",str[i]);
if(strlen(str[tmp])<strlen(str[i]))
tmp=i;
printf("最长的字符串是:%s\n",str[tmp]);
参考技术B #include <stdio.h>
#define N 200
int main()
int i,tmp;
char str[5][N];
printf("please input 5 strings:\n");
for(i=0;i<5;i++)
scanf("%s",str[i]);
if(strlen(str[tmp])<strlen(str[i]))
tmp=i;
printf("最长的字符串是:%s\n",str[tmp]);
system("pause");
参考技术C #include <stdio.h>
#include <string.h>
#define N 5
int main()
char str[N][100];
for (int i = 0; i < N; i++)
scanf("%s", str[i]);
int n = 0;
int length = strlen(str[0]);
for (int i = 1; i < N; i++)
if (strlen(str[i]) > length)
length = strlen(str[i]);
n = i;
printf("Longest:str[%d] = \"%s\"\n", n, str[n]);
return 0;
参考技术D #include <stdio.h>
#include <string.h>
char *fun(char c[][20])
int i,len;char *p;
p=c[0];
for(i=0;i<5;i++)
len=strlen(c[i]);
if(len>strlen(p))p=c[i];
return p;
main()
char a[5][20],*r;int i,j;
printf("\nPlease Enter 5 strings:\n");
for(i=0;i<5;i++)
scanf("%s",a[i]);
r=fun(a);
printf("\nThe longest string is:\n");
printf("%s\n",r);
c语言输入一行字符将此字符串中最长的单词输出
这函数 我怎么没见过 是c语言吗
#include <iostream>void main()
int word(char c);
int longest(char str[]);
int i;
char str[80];
printf("输入一行字符串\\n\\n");
gets(str);
printf("\\n\\n最长的单词为:\\n\\n");
for(i=longest(str);word(str[i]);i++)
printf("%c",str[i]);
printf("\\n");
int word(char c)
if((c>=\'a\'&&c<=\'z\')||(c>=\'A\'&&c<=\'Z\')) return 1;
else return 0;
int longest(char str[])【这个函数几乎完全看不懂 望逐句详细解释其逻辑】
int i,flag=1,len=0,point,max_len=0,max_point;
for(i=0;i<=strlen(str);i++)//解析每个字符
if(word(str[i])) //是英文字母的话
if(flag==1) //成立的话说明这个英文字母是单词的第一个
point=i; //单词第一个找到后改变标志
flag=0;
else len++; //开始对这个单词长度进行累加
else //非英文字母的话
flag=1; //等待第一个英文字母的出现,所以flag=1(要是下一个是英文字母的话就能执行上面的if)
if(len>max_len)//之前累加的单词长度是否比上一个单词更长(第一次的话max_len初始化为0,len必大于max_len)
max_len=len;//将单词长度保存下来
max_point=point;//将最长单词的第一个英文字母在字符串中的位置保存下来
len=0;
return (max_point);
参考技术A #include <string>
#include <iostream>
using namespace std;
int main()
string s, t;
while (cin >> s)
if (s.size() > t.size()) t = s;
cout << t << endl;
return 0;
以上是关于C语言题目找出最长的字符串. 输入5个字符串,输出最长的那个字符串。输入字符串调用scanf()的主要内容,如果未能解决你的问题,请参考以下文章