Buenas, chicos. Primero que todo quiero pedir disculpa por si coloqué este post donde no es; es que soy nuevo y no he leído las reglas del foro. Bueno, a lo que iba: pueden ayudarme con esta parte de un código que consiste en mostrar la palabra mas larga de una oración? he logrado mostrar la cantidad de letras de la mayor pero no la palabra en sí. Tengo una idea con un arreglo bidimensional pero no he podido expreasrla.
PD: no puedo usar la librería string. Gracias
Muchísimas gracias a todos por sus consejos. Considero que el programa funciona de forma eficiente y no me ha dado errores. A continuación voy a postear aquí el resultado esperando que sirva de ayuda para demás estudiantes.
PD: no puedo usar la librería string. Gracias
Código (cpp) [Seleccionar]
#include<iostream.h>
#define max 50
void main(){
int i,f,c,cont,mayor;
char frase[max], frasemayor[max/2][max];
cout<<"introduzca una frase: ";gets(frase);
for(i=0,f=0,c=0,mayor=0;frase[i]!=NULL;)
if(frase[i]!=32)
{while(frase[i]!=32 && frase[i]!=NULL)
frasemayor[f][c++]=frase[i++];
if(c>mayor)mayor=c;
frasemayor[f][c]=NULL;
f++;c=0;
}
else i++;
cout<<mayor<<endl;}
Muchísimas gracias a todos por sus consejos. Considero que el programa funciona de forma eficiente y no me ha dado errores. A continuación voy a postear aquí el resultado esperando que sirva de ayuda para demás estudiantes.
Código [Seleccionar]
#include <stdio.h>
#include<iostream.h>
#define max 50
void main(){
int i,f,c,j,mayor,cambio, v ;
char frase[max], frasemayor[max/2][max];
char *p;
cout<<"introduzca una frase: ";gets(frase);
for(i=0,f=0,c=0,mayor=0;frase[i]!=NULL;)
if(frase[i]!=32)
{while(frase[i]!=32 && frase[i]!=NULL)
frasemayor[f][c++]=frase[i++];
if(c>mayor){mayor=c;p=frasemayor[f];}
frasemayor[f][c]=NULL;
f++;c=0;
}
else i++;
cout<<"la palabra mas larga es \'";
printf("%s",p);
cout<<"\' y tiene "<<mayor<<" letras"<<endl;
}