elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error con el while
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error con el while  (Leído 2,704 veces)
ramona98

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Error con el while
« en: 19 Agosto 2013, 14:06 pm »

Hola,
Estoy haciendo un programa que me calcule el numero de palabras en una cadena, lo he disenado calculando el numero de espacios y sumandole +1, el primer problema que puedo tener si tenemos dos espacios entre palabras ya no sera realista el calculo.... pero el pricipal problema es con el while me da error y no logro avanzar (he probado igualmente con for(...) y lo mismo.

Código:
#include <stdio.h>
#include <string.h>

int index, espacio;
char line[100];

int main()
{

strcpy(line,"hola sam, hola sam.");
index=0;

while (line[index] != '/0')
{
    if (line[index] == ' ') {
    ++espacio; }
    ++index;
}

   
   printf("%d palabras/n", espacio+1);


return (0);
}

y el error que da:
Código:
Compiling the source code....
$g++ main.cpp -o demo -lm -pthread -lgmpxx -lgmp -lreadline 2>&1
main.cpp:13:23: warning: multi-character character constant [-Wmultichar]
main.cpp:4:5: error: 'int index' redeclared as different kind of symbol
In file included from main.cpp:2:0:
/usr/include/string.h:471:22: error: previous declaration of 'const char* index(const char*, int)'
main.cpp: In function 'int main()':
main.cpp:11:7: error: overloaded function with no contextual type information
main.cpp:13:18: error: invalid types 'char [100][]' for array subscript
main.cpp:15:19: error: invalid types 'char [100][]' for array subscript
main.cpp:17:7: error: no pre-increment operator for type

Alguna ayuda?


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Error con el while
« Respuesta #1 en: 19 Agosto 2013, 15:03 pm »

Ya que estas en C++ mejor inclui cstring y cstdio, si seguis teniendo problemas por redeclarar index cambiale el nombre a indice a tu variable ... segui vos.


« Última modificación: 19 Agosto 2013, 15:05 pm por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: Error con el while
« Respuesta #2 en: 19 Agosto 2013, 15:09 pm »

Utiliza un puntero para iterar dentro de la cadena:

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main()
  5. {
  6. char cadena[] = "hola sam, hola sam.";
  7. char *pCadena = cadena;
  8. int numEspacios = 0;
  9.  
  10. while (*pCadena != '\0') {
  11. if (*pCadena == ' ') numEspacios++;
  12. pCadena++;
  13. }
  14.  
  15.    printf("%d palabras/n", numEspacios+1);
  16.  
  17.    return 0;
  18. }


Tu código tiene un error: En el caso de la cadena vacía (char cadena[] = "") el programa imprimirá numEspacios+1 palabras, es decir, 0+1 palabras lo cual está mal.

Por tu registro de errores puedo suponer que estás programando en C++: main.cpp: In function 'int main()': ... así que te recomiendo el tipo String para manejar cadenas.

Un saludo.
En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Error con el while
« Respuesta #3 en: 19 Agosto 2013, 15:34 pm »

El error no venia de ahí. El compilador le estaba diciendo que tenia una constante caracter que tenía mas de un caracter. Había puesto '/0' en lugar de '\0'

Y no llames a la variable index, te está diciendo que hay un conflicto con alguna función definida en string.h (Como ya había dicho Eternal)

¡Saludos!
« Última modificación: 19 Agosto 2013, 15:40 pm por do-while » En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines