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

Separar en digitos una variable int y comparacion de chars

Estas en el tema de Separar en digitos una variable int y comparacion de chars en el foro de C/C++ en Foros del Web. Hola, tengo dos dudas. La primera es referente a separar en digitos un entero por ejemplo: int var = 123; y quiero separar esos valores, ...
  #1 (permalink)  
Antiguo 02/05/2010, 00:59
Avatar de asdf21  
Fecha de Ingreso: abril-2010
Mensajes: 12
Antigüedad: 14 años
Puntos: 0
Pregunta Separar en digitos una variable int y comparacion de chars

Hola, tengo dos dudas.

La primera es referente a separar en digitos un entero por ejemplo:

int var = 123;

y quiero separar esos valores, algo asi como

int a = 1; int b = 2; int c = 3;

Hay algun metodo o forma de hacerlo?

Segundo Tengo otra duda al comparar chars, por ejemplo tengo esto

Código:
class Persona{
private 
char*nombre

};

Persona::Persona(char *name){
...
}
Ahora este objeto lo tendre almacenado en un arreglode objetos y lo que quiero es que desde el main introdusco el nombre y con una funcion buscaria tal nombre y lo devolveria . Como java tiene el equals, c++ tiene algo parecido ya que realmente no se como hacer la comparacion de chars
mi metodo, trivialmente seria asi:

Código:
 Persona:: buscar(char *bus){
int i=0;
while (i > cantidad_arreglo && persona[i].getNombre() != bus)
eso

saludos
  #2 (permalink)  
Antiguo 02/05/2010, 05:27
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Separar en digitos una variable int y comparacion de chars

Para obtener los digitos, usa un ciclo, el operador % ( % 10 ) y la division ( / 10 ).

Código idea:
Ver original
  1. .
  2.                     345 % 10 = 5
  3. 345 / 10 = 34  ->    34 % 10 = 4
  4.  34 / 10 = 3   ->     3 % 10 = 3
  5.    3 / 10 = 0 fin

El tipo string existe en C++, si lo usas, el codigo que pusiste funcionara.
Si usas char*, utiliza la funcion strcmp
  #3 (permalink)  
Antiguo 02/05/2010, 09:47
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Separar en digitos una variable int y comparacion de chars

Código C:
Ver original
  1. while(n){
  2.     digito = n mod 10;
  3.     printf("%d", digito);
  4.     n /= 10;
  5. }
  #4 (permalink)  
Antiguo 02/05/2010, 10:10
Avatar de asdf21  
Fecha de Ingreso: abril-2010
Mensajes: 12
Antigüedad: 14 años
Puntos: 0
Respuesta: Separar en digitos una variable int y comparacion de chars

Cita:
Iniciado por razpeitia Ver Mensaje
Código C:
Ver original
  1. while(n){
  2.     digito = n mod 10;
  3.     printf("%d", digito);
  4.     n /= 10;
  5. }
la variable "n", vendria a ser el numero a separar cierto?
  #5 (permalink)  
Antiguo 02/05/2010, 10:58
Avatar de asdf21  
Fecha de Ingreso: abril-2010
Mensajes: 12
Antigüedad: 14 años
Puntos: 0
Respuesta: Separar en digitos una variable int y comparacion de chars

Cita:
Iniciado por CalgaryCorpus Ver Mensaje
Para obtener los digitos, usa un ciclo, el operador % ( % 10 ) y la division ( / 10 ).

Código idea:
Ver original
  1. .
  2.                     345 % 10 = 5
  3. 345 / 10 = 34  ->    34 % 10 = 4
  4.  34 / 10 = 3   ->     3 % 10 = 3
  5.    3 / 10 = 0 fin

El tipo string existe en C++, si lo usas, el codigo que pusiste funcionara.
Si usas char*, utiliza la funcion strcmp
otra duda, tengo entendido que no se pueden declarar variables del tipo string osea

Cita:
Class Persona{

private:
string nombre;
public:
Persona(string name);
}
Lo intente pero me salta un error.
  #6 (permalink)  
Antiguo 02/05/2010, 11:15
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Separar en digitos una variable int y comparacion de chars

Tal vez te falta:

#include <string>
using namespace std;
  #7 (permalink)  
Antiguo 02/05/2010, 12:31
Avatar de asdf21  
Fecha de Ingreso: abril-2010
Mensajes: 12
Antigüedad: 14 años
Puntos: 0
Respuesta: Separar en digitos una variable int y comparacion de chars

Cita:
Iniciado por CalgaryCorpus Ver Mensaje
Tal vez te falta:

#include <string>
using namespace std;
no, lo coloque y aun asi me tira un error

lo que hize fue los siguiente:

Código C++:
Ver original
  1. #include <string>
  2. using namespace std;
  3.  
  4. class Persona
  5. {
  6.  
  7. private:
  8.             string nombre;
  9. public:
  10.             Persona(string name);
  11.             string getnombre();
  12.  
  13. };
  14.  
  15. Persona::Persona(string name){
  16.                  nombre = name;
  17. }
  18.  
  19. string Persona::getnombre(){
  20.             return nombre;
  21. }
  22.  
  23.  
  24. /// Main
  25.  
  26. #include <iostream>
  27. #include <string>
  28. #include <Persona.cpp>
  29. using namespace std;
  30.  
  31. int main{
  32.  
  33. string nombre;
  34. cout << "ingrese nombre";
  35. getline(cin, nombre);
  36. Persona nueva(nombre);
  37.  
  38. cout << nueva.getnombre() << endl;
  39.  
  40. return 0;
  41.  
  42. }

tengo un error, pero no se cual es XD
  #8 (permalink)  
Antiguo 02/05/2010, 14:29
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Separar en digitos una variable int y comparacion de chars

Tienes un error y no sabes cual es?
Y como sabes que tienes un error? El compilador genera algun error? Cual?
Sera que haces #include <Persona.cpp>? Como se llama el programa que incluyes aqui?
  #9 (permalink)  
Antiguo 02/05/2010, 14:47
Avatar de asdf21  
Fecha de Ingreso: abril-2010
Mensajes: 12
Antigüedad: 14 años
Puntos: 0
Respuesta: Separar en digitos una variable int y comparacion de chars

Perdon, me quivoque al postear mi codigo, era #include "Persona.cpp".
El error dice que
string nombre en class Persona es privado, pero aun asi con el get deberia poder desplegarlo
  #10 (permalink)  
Antiguo 02/05/2010, 15:10
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Separar en digitos una variable int y comparacion de chars

Es extraño tener un #include de un archivo .cpp.
Que contiene el archivo Persona.cpp? Como se llama el archivo que estas posteando?
En que linea (de las que muestras aqui) sale el error, y cual es el mensaje exacto que genera el compilador? Hay algun codigo que no estas mostrando?
  #11 (permalink)  
Antiguo 02/05/2010, 15:27
Avatar de asdf21  
Fecha de Ingreso: abril-2010
Mensajes: 12
Antigüedad: 14 años
Puntos: 0
Respuesta: Separar en digitos una variable int y comparacion de chars

Este es el codigo

Código C++:
Ver original
  1. #include <iostream>
  2. #include <string>
  3. #include"Persona.cpp"
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     string nombre;
  10.     cout << "Ingrese su nombre: ";
  11.     getline(cin, nombre);
  12.     Persona mi_persona(nombre);
  13.  
  14.     cout << mi_persona.nombre() << endl;
  15.     return 0;
  16. }

Código C++:
Ver original
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. class Persona
  7. {
  8.     private:
  9.             string nombre;
  10.     public:
  11.             Persona(string name);
  12.             string GetNombre();
  13.  
  14. };
  15.  
  16. Persona::Persona(string name){
  17.     nombre = name;
  18. }
  19.  
  20. string Persona::GetNombre(){
  21.     return nombre;
  22. }

y lo que me arroja el codeblocks es :
Cita:
error: 'std::string Persona::nombre' is private
error: within this concert
error: no match for cal to '(std::string) ()'
y tienes razon, es raro ver un include .cpp pero lo hice a la rapida
  #12 (permalink)  
Antiguo 02/05/2010, 16:25
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Separar en digitos una variable int y comparacion de chars

Se ve que el codigo evoluciona. El main de ahora es distinto del que mostraste antes.
En este nuevo main() estas usando

cout << mi_persona.nombre() << endl;

como si el metodo nombre() existiera, pero nombre no es un metodo, es un miembro privado de la clase Persona.

Estoy del lado del compilador.

Si quieres mostrar el nombre usa el metodo publico que has definido GetNombre(), que tambien ha cambiado de nombre entre una version y otra.

Suerte!

Etiquetas: comparacion, digitos, int, variables
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 10:10.