Dev - C++ - Limitar entrada de un string

 
Vista:

Limitar entrada de un string

Publicado por Javier (2 intervenciones) el 30/04/2007 19:35:45
Hola, como va, lo que ando necesitando es limitar la entrada de alguos strings.
Por ejemplo, tengo un campo para que el usuario ingrese su nombre, la variable donde lo guardo es un char de 15, debido a esto lo que quiero es que el tipo no pueda ingresar mas de 15 caracteres. y no se como realizarlo.
Gracias
Javier
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Limitar entrada de un string

Publicado por Iker (1 intervención) el 02/05/2007 23:40:20
Hola Javier, es muy sencillo:
Primero tienes que incluir la cabecera string.h para trabajar con cadenas.
Entonces podrás usar una función llamada "strlen"
¿Qué hace esta función? Muy sencillo, te devuelve el número de caracteres que tiene una cadena. Te voy a poner un ejemplo de validar un nombre:

char* pedirnombre()
{
char nombre[16]; //definimos una variable cadena
do {
cout<<"Introduzca su nombre.\n"; //pedimos el nombre
cin>>nombre;
} while (strlen(nombre)>15); //mientras el nombre mida mas de 15, repite
return (nombre); //devuelve el nombre asociado al nombre de la funcion
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Limitar entrada de un string

Publicado por Javier (2 intervenciones) el 03/05/2007 04:15:15
Gracias por la respuesta pero creo q no me entendiste. Eso que vos propones lo que hace es pedirle al usuario tantas veces como sea neceserio el nombre hasta q sea menor a 15. Yo no quiero esto. Yo lo q quiero es que no pueda escribir mas de 15 caracteres. Que en el caracter numero 15 si sigue escribiendo no pase nada, no se escriba nada. Me explico??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Limitar entrada de un string

Publicado por R3DRUM (2 intervenciones) el 29/05/2007 09:40:53
HOLA:

Creo que los que pides es un 'Edit' (en esta página son donde está mi Nombre, ó mi Correo, etc) en el que como máximo entrarán 15 caracteres, ¿no?

Si es así, la solución es esta:

- Seleccionar dicho 'Edit' ('DBEdit').

- Buscar en 'Opciones / Eventos' (que normalmente están a tu izquierda) la Opción 'MaxLength' que tiene por valor (0) por lo cual acepta indefinido número de caracteres, pues ahí ponle (15) y ya está solucionado, solo aceptará 15 caracteres.

Salu2:
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Limitar entrada de un string

Publicado por R3DRUM (2 intervenciones) el 29/05/2007 09:43:00
OXTIAS PERDÓN

Me creía que estaba en 'Delphi' y al salir me he dado cuenta de que no.
No me hagas caso en mi respuesta anterior...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Limitar entrada de un string

Publicado por migue (1 intervención) el 23/05/2012 19:48:27
efectivamente como dice Iker. La función do-while seria excelente si pusieras un contador por ejemplo int i=0 y preguntas if-else digamos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
char* pedirnombre()
{
int i=0,b=0;
char a[16];
char nombre[16]; //definimos una variable cadena 
do {
cout<<"Introduzca su nombre.\n"; //pedimos el nombre
if(i>=0)
 {if(i<14)
  { b=a=getch();//captura el carácter y su codigo en ascii
    cout<<"%c", a;//imprime el carácter
    i++;//suma uno al contador
    if(b==8)//lee el digito en b que sera 8 = retroceso ascii
    {a='\0'
    cout<<"\b \b";//borra un caracter
     i--; }//decrementa en 1 el contador
    else;}
   else;
            }    //aquí debes poner una forma para salvar la variable en nombre
else
if(i==14)
 {b=getch();
 if(b==8)
 {cout<<"\b \b";//borra un caracter
  i--;}
 else;}
else
} while (b!=13); //mientras no den enter se repite 
return (nombre); //devuelve el nombre asociado al nombre de la función 
}


ojala les funcione y si tienen otra conocen otro método compartanlo, saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Limitar entrada de un string

Publicado por migue (1 intervención) el 23/05/2012 19:51:33
disculpa el error cout<<"Introduzca su nombre.\n"; debe estar fuera de do-while si no se estara repitiendo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar