C++ 从输入的5个字符串中找出最长的一个字符串输出

要求用一维数组。 求高手给写个。
#include<stdio.h>
#include<string.h>
main()
{
char a[5],b[5],c[5],d[5],e[5];
int i,k;
gets(a);
gets(b);
gets(c);
gets(d);
gets(c);
下面怎么写- -不会了。

#include<stdio.h>
#include<string.h>
#include<iostream.h>
main()
{
char a[5],b[5],c[5],d[5],e[5];
int i,k;
gets(a);
gets(b);
gets(c);
gets(d);
gets(e);
cout<<strlen(a)<<" "<<strlen(b)<<" "<<strlen(c)<<" "<<strlen(d)<<endl;
}

我用的是C++的cout来输出每个字符串的长度的,你可以很容易看出结果,
其实只要用strlen函数就行了,很容易比较大小,找到最大的之后输出对应的字符串就行了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-03
/*
Name: zhaotianyuan2
Copyright:
Author:
Date: 03/05/11 19:32
Description:实现求出最长字符串功能
*/

#include <cstdlib>
#include <iostream>
#include <cstring>

using namespace std;

int main(int argc, char *argv[])
{
char a[6][50];
int l[6];
int i,k;
char maxchar[51];
int max=0;
for(i=1;i<=5;i++)
{gets(a[i]);}
for(i=1;i<=5;i++)
l[i]=strlen(a[i]);
for(i=1;i<=5;i++)
if(l[i]>max)
{max=l[i];strcpy(maxchar,a[i]);}
cout<<"最长的字符长度:"<<max<<"\n最长的字符串:"<<maxchar<<endl;
system("PAUSE>nul");
return EXIT_SUCCESS;
}

其使用一个字符2为数组就行了,要不然太麻烦,不过找出最长的时候可以用一个一位数组,还有,定义每个字符串时要定大一点!本回答被提问者和网友采纳
第2个回答  2011-05-03
/*在VC6.0中运行*/
#include<stdio.h>
#include<iostream.h>
#include<string.h>
int main(void)
{
char a[20],b[20],c[20],d[20],e[20];
int i,k,max;
printf("请输入5个字符串:\n");
gets(a);
gets(b);
gets(c);
gets(d);
gets(e);

char *p[5], *temp;
p[0] = a;
p[1] = b;
p[2] = c;
p[3] = d;
p[4] = e;

k = 0;
max = 0;
for (i=0; i<5; ++i)
{
temp = p[i];
if (strlen(temp) > max)
{

k = i;
max = strlen(temp);
}
}

cout << *(p+k) << endl;

return 0;
}
第3个回答  2011-05-04
我觉得二楼的不错。。

找出字符串中最长的回文串 c++
int main(){ char s[100];int i, l, max = 0, k, j, locate;printf("请输入一个长度小于108的字符串:\\n");scanf("%s", &s);l = strlen(s);for (i = 1; i < l; i++){ for (k = i - 1, j = i + 1; k >= 0 && s[k] == s[j]; k--, j++) ;if (...

C++编程 输入5个字符串,按英文字典排序,由小到大顺序输出。 求大神帮我...
\/\/输入字符串}\/* 思想: * 1.从当前字符串开始,与之后的所有字符串比较,找到最小(即按字母表 * 应该是最靠前的)的字符串即为排在最前面的字符串,则最小字符串与 * 当前字符串换位; * 2.从下一个字符串开始继续上一步操作,直到只有一个字符串剩余为止, * (只有一个字符串...

在c++中如何在字符串中找最大的数字,字符串个数小于256,字符串中有字 ...
你得准备2个变量来存储数,1个变量为最大数,记做max,另一个记做num。然后读取字符串,当发现数字时,变将num×10+该数字,当发现不是数字时,如果num为0,不执行任何操作,当num不为0,判断num和max的大小,大的赋值给max,同时num设为0.这样就能得到最大数字了 ...

C++编程找出字符串中最长和最短的单词
cout<<"原字符串:"<<endl<<stmp<<endl<<endl;cout<<"共找到单词"<<vect.size()<<"个,分别是:"<<endl;for(i = 0; i < vect.size(); i++)cout<<vect[i]<<endl;cout<<endl<<endl<<"找到的最短的单词共有"<<vecMin.size()<<"个,分别是:"<<endl;for(i = 0; i < vecM...

C#找出字符串中最长的英文字母?
using System.Text.RegularExpressions;string input = "今晚已经吃饭了abc123蛋炒饭a12,b123";string longest = Regex.Matches(input, @"[a-zA-Z0-9]+").OfType<Match>().Select(m => m.Groups[0].Value).OrderByDescending(x => x.Length).First();Console.WriteLine(longest);...

有一个输入的字符串,找出这个字符串中最长的单词。
如果用C++来写的话:string findLongestWord(string s){ int startIdx = 0;int maxLen = 0;int currentLen = 0;for(auto it = s.begin(); it < s.end(); ++it){ if(*it != ' ') currentLen ++;else currentLen = 0;if(currentLen > maxLen){ startIdx = (it - s....

输入6个字符串,输出最大字符串,,,c++编程
当时定义字符串长度20,你要是输入字符串长度大于这个数,程序往下数第6行的char str[20]改一下就行。include<stdio.h> include<malloc.h> include<string.h> typedef struct tagNode { char str[20];struct tagNode *Next;}Node;Node *Create(); \/* 创建链表 *\/ Node *ListSort(Node *)...

C语言输入一个字符串,并输出其中最大的字符.
define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ printf("请输入一个字符串(C\/C++学习Q_U_N):\\n");char str[100];scanf("%s", str);int length = strlen(str) + 1;char Max = str[0];for (int i = 0; i < len...

c++有5个字符串,要求对它们按由小到大顺序排列,用string方法。求...
cin>>str[i]; \/\/输入5个字符串 sort(str); \/\/调用str函数 cout<<"The sorted string is:"<<endl; \/\/输出The sorted string is for(i=0;i<=5;i++)cout<<str[i]<<" "; \/\/输出已排列好的字符串 cout<<endl;return 0;} void sort(string s[]){ int i,j;string temp;for(i...

C++如何读取一个大文件,并识别各个字符串出现的次数,找到次数最多的...
if(c==s[0])\/\/如果第一个字符相等,比较剩下的字符串 { fpos=ftell(fp);\/\/记住当前文件指针位置 for(i=1;i<len;i++){ if(fgetc(fp)!=s[i])\/\/如果不匹配,跳出循环 { fseek(fp,fpos,0);\/\/重新设置指针位置 break;} } if(i==len)\/\/如果匹配成功,累加数目 n1++;} if(c==sc...

相似回答