编写程序,输入五个字符串,输出其中最长的字符串。要求使用指针数组实现。

作者&投稿:亢怨 (若有异议请与网页底部的电邮联系)
C语言,编写一个程序,输入若干字符串,找出其中最长的字符串并输出。要用指针数组存放这些字符串,并要~

1、我们在main函数之前定义一个函数。

2、然后我们就可以开始编写,并且先输入整个框架。

3、然后我们可以用和循环开始进行输出。

4、利用普通变量也可以使用指针变量来书写。

5、在这里我们将以指针变量来书写。

6、书写完毕后,我们将可回去main函数中进行直接调用。

试修改代码如下:
#include#include#includeint max_len(char *s[10],int n){int i,max,k;max = 0;for(i=0;ik)?max:k;}return max;}int main(void){int n,i,j;char *s[10], str[10];printf("Enter n(n<10) :");scanf("%d",&n);i = 0; printf("请输入字符串,每行一个:
");while(i<=n-1){scanf("%s",str);s[i]=(char *)malloc(sizeof(char)*(strlen(str)+1));strcpy(s[i],str);i++;};j=max_len(s,n);printf("length=%d",j);return 0;}运行截图:

#include <stdio.h>

#include <string.h >

int main()

{

int i = 0;

char s[80] = {""}, max[80] = {""}; 

printf("输入五个字符串:
");

scanf("%s",s);

strcpy(max,s); 

for(i=1; i<5; i++)

{

scanf("%s",s);

if( strcmp(max,s)<0 )

strcpy(max,s);

}

printf("最大的字符串是:%s
",max);

return 0;

}

扩展资料:

scanf函数最主要的用法是:

scanf("输入控制符",输入参数);

功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。

用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。

如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志'\0'。



#include <stdio.h>
#include <string.h>
#include <malloc.h>
int main()
{
char *str[5];
int i,len=0,pos;
for (i=0;i<5;i++)
{
str[i] = malloc(sizeof(char)*50);
gets(str[i]);
if (strlen(str[i])>len)
{
len = strlen(str[i]);
pos = i;
}
}
printf("longest is str[%d]=[%s]
",pos,str[pos]);

return 0;
}
12
34345
etet
4555
yyy
longest is str[1]=[34345]
Press any key to continue


#include"stdio.h"
#include"string.h"
int main()
{
char *string[5],strings[5][100];
int i,n,max,temp=0;
printf("输入五个字符串:");
scanf("%s",strings[0]);
string[0]= &strings[0][100];
max=strlen(strings[0]);
for(i=1;i<5;i++){
scanf("%s",strings[i]);
string[i]= &strings[i][100];
n=strlen(strings[i]);
if(max<n){
max=n;
temp=i;
}
}
printf("输出最长字符串:%s\n",strings[temp]);
return 0;
}

BY-吴志远

#include"stdio.h"
#include"string.h"
#include"stdlib.h"
int main(void)
{
char *str[5];
int size=sizeof(char);
int i,k,j;
str[0]=(char *)malloc(size);
printf("Input 5 strings:\n");
scanf("%s",str[0]);
for(i=1;i<5;i++){
str[i]=(char *)malloc(size);
scanf("%s",str[i]);
k=strlen(str[0]);
j=strlen(str[i]);
if(k<j)
str[0]=str[i];
}
printf("The lengthest string is:%s\n",str[0]);
return 0;
}
//应该没有打错字符吧(^_^) 这是我的答案的说

……
char str[5];int i,j,l,k=0;
for(i=-1,i<5,i++){
l=scanf("%s",&str[i]);if(l>=k)j=i;}printf("%s",&str[j]);


编一个c++程序,输入五个学生的学号、姓名、5门课的成绩,按平均分的高...
int score5;double ave;};stu student[5];void main(){ cout<<"请输入各学生的信息"<<endl;\/*long no;char name[5];int score1;int score2;int score3;int score4;int score5;float ave[5];*\/ int j=1; \/\/用来记录第几个学生 for(int i=0;i<5;i++){ int sum;p...

编一个程序 随便输入五位数,分别正序和逆序输出
用字符串的方法读入存放和输出比较方便。include <stdio.h> main(){ char s[6];int i;printf("input the number with 5 digits\\n");scanf("%s",s);printf("%s\\n",s);for (i=0;i<5;i++)printf("%c",s[4-i]);return 0;} ...

帮忙写一个程序,基础入门的
include<stdio.h> include<string.h> int main(){ char str1[20],str2[20];scanf("%s%s",&str1,&str2);int num1=strlen(str1);int num2=strlen(str2);printf("%*.*s",0,num1,str1);printf("%*.*s\\n",(num2+1),num2,str2);printf("%d",num1);printf("%*d\\n",num...

c语言,输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排...
\/*循环输入国家名并存储在结构数组中*\/ for(i=0;i<5;i++){ scanf("%s",&raw[i].cou);p[i]=&raw[i];\/* strupr(p[i].cou);*\/ } \/*冒泡排序将国家名称排序*\/ for(i=0;i<4;i++)for(j=0;j<4-i;j++){ \/*strcmp函数比较相邻两个国家名的Ascii码*\/ if(strcmp(p[j]->...

C语言,输入五个国家的名字(英文),按字母顺序(即按ASCII码从小到大的...
\/*循环输入国家名并存储在结构数组中*\/ for(i=0;i<5;i++) { scanf("%s",&raw[i].cou); p[i]=&raw[i]; \/* strupr(p[i].cou);*\/ } \/*冒泡排序将国家名称排序*\/ for(i=0;i<4;i++) for(j=0;j<4-i;j++) { \/*strcmp函数比较相邻两个国家名的Ascii码*\/ if(strcmp(p[j]->cou...

用vc++6.0编写c++程序 输入一个五位数,要求输出其相应的汉字形式_百 ...
C++版,运行符合要求,毫无漏洞- -|| include<iostream> using namespace std;int main(){int a;cout<<"请输入一个五位数"<<endl;cin>>a;while(a<10000||a>99999){cout<<"输入错误,请重新输入一个五位数!"<<endl;cin>>a;} int g=a\/10000;\/\/万位数 int b=a%10000\/1000;\/\/ 千位...

从键盘输入5个学生的姓名,把它们按字典顺序排序后输出
本程序的第一个for语句中,用gets函数输入五个名字符串。上面说过C语言允许把一个二维数组按多个一维数组处理,本程序说明cs[5][20]为二维字符数组,可分为五个一维数组cs[0],cs[1],cs[2],cs[3],cs[4]。因此在gets函数中使用cs[i]是合法的。 在第二个for语句中又嵌套了一个for语句组成...

想做一个批处理文件,如何写程序?
parameters 这些为传送到命令\/程序的参数执行的应用程序是 32-位 gui 应用程序时,cmd.exe 不等应用程序终止就返回命令提示。如果在命令脚本内执行,该新行为则不会发生。8.choice 命令choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加\/c:参数,c:后应写提示可输入的字符,之间无空格。它...

输入5种水果的英文名称,用java编写一个程序,输出这些水果名称按照字典出 ...
二、实现:1、定义输入水果名字的个数,用来确定数组的大小,修改此值可以修改数组的大小。2、用户输入,用循环实现接收,并存储到数组中。3、将数据对比大小,按升序排列。使用最简单的冒泡排序法(麻烦易错)或Java的工具类(简单高效)。4、输出排序后的数组。实现代码:\/\/java代码:输入五种水果的...

输入5种水果的英文名称,用java编写一个程序,输出这些水果名称按照字典出 ...
二、实现:1、定义输入水果名字的个数,用来确定数组的大小,修改此值可以修改数组的大小。2、用户输入,用循环实现接收,并存储到数组中。3、将数据对比大小,按升序排列。使用最简单的冒泡排序法(麻烦易错)或Java的工具类(简单高效)。4、输出排序后的数组。实现代码:\/\/java代码:输入五种水果的...

邵阳县18860663776: c++ 程序编写:编写程序,输入5个字符串,从中找出最大的字符并输出.要求使用字符指针变量实现. -
敖柏比拜: #include <stdio.h> #include <stdlib.h> #include <string.h>int main() {int i, len;char input[5][100];char * a, *b;for(i = 0;i < 5;i++)gets(input[i]); a = input[0]; for(i = 0;i < 5;i++){b = input[i];while(*b){b++;if(*b > *a)a = b;}}printf("最大的字符为:%c\n",*a);return 0; }

邵阳县18860663776: c程:输入5个字符串,输出其中最大的字符串. -
敖柏比拜: strcpy(max,str)完成字符串拷贝,strcmp完成字符串比较,只要保留一个for循环,用一个strcmp就解决问题.strcmp(str1,str2):str1>str2时strcmp()>0,str1=str2时strcmp()=0,str1<str2时strcmp()<0#include <string.h>#include <stdio.h>#include <stdlib....

邵阳县18860663776: 用一维数组编写程序.从键盘上输入由5个字符组成的一个字符串,然后输出该字符串. -
敖柏比拜: var a:array[1..100] of char; i,j,k:longint; ch:char; st:string; begin write('1?,2?'); readln(k); if k=1 then begin for i:=1 to 5 do begin read(ch); a[i]:=ch; end; for i:=1 to 5 do write(a[i]); end; if k=2 then begin readln(st); writeln(st); end; end.

邵阳县18860663776: C语言题目:编一个程序,输入5个字符,从中找出最大的字符并输出. -
敖柏比拜: 呵呵!! 将 max=*p[0]; 改为for(i=0;i max=p[i];就好了!!你可以看看!!!

邵阳县18860663776: 一道c语言程序题: 输入5个字符串,按字典顺序将其重新排列输出.用字符串指针实现. -
敖柏比拜: #include<stdio.h>#include<string.h> void main() { void sort(char (*p)[20]); char a[5][20];//五行20列 int i; printf("请输入5个字符串:\n"); for(i=0;i<5;i++)//这里输入五个字符串 gets(a[i]); sort(a);//调用函数进行排列 } void sort(char (*p)[20]) ...

邵阳县18860663776: 将5个字符串存入二维数组a中,输出其中最小的字符串.怎么编程? -
敖柏比拜: 1楼是认真回答的吗?粘贴了个字符拷贝函数的代码?#define COUNT 5 //输入5个字符串 #define MAX_LENGTH 10 //每个字符串最多10个字符 int main() {int i=0;char *a[5]; //声明一个存放5个字符串的指针变量while (i{ //先申请MAX_...

邵阳县18860663776: 编写C程序:用指针数组操作,将输入的5个字符串按从小到大的顺序输出 -
敖柏比拜: // chapter7.cpp : Defines the entry point for the console application. //#include "stdafx.h" #include <string.h> #include <ctype.h>void order(int * string) //把数组按从小到大排列,返该数组首地址 输入0结束 {int i,j,temp;int n = 0; //计算输入...

邵阳县18860663776: c语言书上的一道编程题,输入5个字符串,并按字母顺序排列后输出.程序如下: -
敖柏比拜: for(i=0;j { k=i; for(j=i+1;j 第一个for循环 for(i=0;j应该是书排版错误,如果是for(i=0;j

邵阳县18860663776: 求助大神, 编写一个程序,从一组至少有五个字符串的组里,输出任意挑选的一个字符串 -
敖柏比拜: #include#include void main() { int n; char str[50]; scanf("%s",str); n=strlen(str); printf("长度为:%d",n); }

邵阳县18860663776: 输入五个字符串,按由小到大输出 -
敖柏比拜: 输入五行字符串,允许含空白:#include <stdio.h> main() { char s[5][80]; char t[80]; int i,j; printf("input 5 strings, one string per line\n"); for (i=0;i<5;i++) fgets(s[i],80,stdin); for(i=0;i<4;i++) for(j=i+1;j<5;j++){ if (strcmp(s[i],s[j]) >0) {strcpy(t,s[i]);strcpy(s[...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网