Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problemas con mi codigo

Estas en el tema de problemas con mi codigo en el foro de C/C++ en Foros del Web. Wenas, me gustaria que me ayudarais en mi codigo, me cuenta el numero de caracteres de la cadena de caracteres, pero lo que realmente quiero ...
  #1 (permalink)  
Antiguo 17/03/2010, 18:54
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 2 meses
Puntos: 0
problemas con mi codigo

Wenas, me gustaria que me ayudarais en mi codigo, me cuenta el numero de caracteres de la cadena de caracteres, pero lo que realmente quiero hacer es que me retorne el numero de caracteres de la palabra mas larga de la cadena. En los espacios, entre palabras he puesto '*' por necesidades del programa principal, os pongo la función que utilizo, largo es el numero total de caracteres de la cadena, gracias de antemano.

void Busqueda_Palabra(char txt[], int *largo) {

int i, largo_palabra, palabra_mas_larga, auxiliar;


system ("cls");
printf("\n");
printf("\n");
printf(" ******************************************\n");
printf(" ** BUSQUEDA DE PALABRAS **\n");
printf(" ******************************************\n\n\n") ;
printf(" ******************************************\n");
printf(" ** BUSCAMOS LA PALABRA MAS LARGA **\n");
printf(" ** Y CONTAMOS SU NUMERO DE CARACTERES **\n");
printf(" ******************************************\n");
printf("\n");
printf("\n");

largo_palabra = 0;
palabra_mas_larga = 0;

for (i = 0; i < *largo - 1; i++) {
if (txt[i] != '*') {
largo_palabra++;
}

auxiliar = largo_palabra;

if (palabra_mas_larga <= auxiliar) {
palabra_mas_larga = auxiliar;
}
}



printf(" LA PALABRA MAS LARGA ES DE: %d"" LETRAS.", palabra_mas_larga);

printf("\n");
printf("\n");
system("pause");

}
  #2 (permalink)  
Antiguo 17/03/2010, 19:10
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 11 meses
Puntos: 61
Respuesta: problemas con mi codigo

Te falta volver largo_palabra a 0 despues de salir de una palabra
  #3 (permalink)  
Antiguo 18/03/2010, 06:26
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: problemas con mi codigo

wenas, gracias por responder, es decir:

problemas con mi codigo

--------------------------------------------------------------------------------
Wenas, me gustaria que me ayudarais en mi codigo, me cuenta el numero de caracteres de la cadena de caracteres, pero lo que realmente quiero hacer es que me retorne el numero de caracteres de la palabra mas larga de la cadena. En los espacios, entre palabras he puesto '*' por necesidades del programa principal, os pongo la función que utilizo, largo es el numero total de caracteres de la cadena, gracias de antemano.

void Busqueda_Palabra(char txt[], int *largo) {

int i, largo_palabra, palabra_mas_larga, auxiliar;


system ("cls");
printf("\n");
printf("\n");
printf(" ******************************************\n");
printf(" ** BUSQUEDA DE PALABRAS **\n");
printf(" ******************************************\n\n\n") ;
printf(" ******************************************\n");
printf(" ** BUSCAMOS LA PALABRA MAS LARGA **\n");
printf(" ** Y CONTAMOS SU NUMERO DE CARACTERES **\n");
printf(" ******************************************\n");
printf("\n");
printf("\n");

largo_palabra = 0;
palabra_mas_larga = 0;

for (i = 0; i < *largo - 1; i++) {
if (txt[i] != '*') {
largo_palabra++;
}

auxiliar = largo_palabra;
largo_palabra = 0;// AQUIIIIIIIIIIIIIIIIIIII

if (palabra_mas_larga <= auxiliar) {
palabra_mas_larga = auxiliar;
}
}



printf(" LA PALABRA MAS LARGA ES DE: %d"" LETRAS.", palabra_mas_larga);

printf("\n");
printf("\n");
system("pause");

}
  #4 (permalink)  
Antiguo 18/03/2010, 06:53
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 11 meses
Puntos: 61
Respuesta: problemas con mi codigo

Tiene que estar sujeto a alguna condicion, si lo haces incondicionalmente, la cuenta volvera a cero a cada rato. Solo hazla cero una vez que descubres que saliste de una palabra, y despues de haber guardado el largo de la ultima que descubriste.
  #5 (permalink)  
Antiguo 18/03/2010, 08:52
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: problemas con mi codigo

=0,vaya ,yo lo haria con funciones de cadenas... strlen y guardando el valor de la longitud en un aux y luego comparando... seria mucho mas corto ..
  #6 (permalink)  
Antiguo 19/03/2010, 18:11
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: problemas con mi codigo

ya me salio muchisimas gracias por las aclaraciones, el codigo que me sale bien es este:

void Busqueda_Palabra(char txt[], int *largo) {

int i, largo_palabra, palabra_mas_larga;


system ("cls");
printf("\n");
printf("\n");
printf(" ******************************************\n");
printf(" ** BUSQUEDA DE PALABRAS **\n");
printf(" ******************************************\n\n\n") ;
printf(" ******************************************\n");
printf(" ** BUSCAMOS LA PALABRA MAS LARGA **\n");
printf(" ** Y CONTAMOS SU NUMERO DE CARACTERES **\n");
printf(" ******************************************\n");
printf("\n");
printf("\n");

largo_palabra = 0;
palabra_mas_larga = 0;

for (i = 0; i < *largo - 1; i++) {
if (txt[i] != ' ') {
largo_palabra++;
}
else {
largo_palabra = 0;
}
if (largo_palabra >= palabra_mas_larga) {
palabra_mas_larga = largo_palabra;
}
}

printf(" LA PALABRA MAS LARGA ES DE: %d"" LETRAS.", palabra_mas_larga);

printf("\n");
printf("\n");
system("pause");

}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:32.