copiar caracteres en una cadena

Iniciado por mapers, 8 Julio 2010, 04:24 AM

0 Miembros y 1 Visitante están viendo este tema.

@synthesize

Gracias por responder, ya he visto claro mi error, fantástico como siempre lh.

#include <stdio.h>

int main(void)
{
int cont;
char vector[5];
for ( cont=0 ; cont<5 ; cont++ )
{
    vector[cont] = 'a';
}

printf("%s\n", vector);
return 0;
}

mapers

gente y si quiero por ejemplo dar una cadena de 3 caracteres y que los permute por ejemplo :
mar
mmaarr
mmmaaarrr

y asi sucesivamente seria algo asi
Código (cpp) [Seleccionar]

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    char arreglo [1000];
    char arreglo1[1000];
    char arreglo2[1000];
    char arreglo3[1000];
    int cont,k;
   
    cout<<"INGRESE VALOR A GENERAR"<<endl;
    cin>>k;
    cout<<"INGRESE CADENA A EVALUAR"<<endl;
    cin>>arreglo;
                 for ( cont=0 ; cont<k ; cont++ )
                 {
                    arreglo1[cont]=arreglo[0];
                    arreglo2[cont]=arreglo[1];
                    arreglo3[cont]=arreglo[2];
                    cout<<arreglo1<<arreglo2<<arreglo3<<endl;
                   
                 }
                 
                 
    system("PAUSE");
    return EXIT_SUCCESS;
}



pero no se lo que pasa cuando ingreso por ejemplo en el k =10 e ingreso la palabra mar esto sale :
mar
mmaarrU
mmmaaarrr
mmmmàáâã($>aaaaÔ÷"rrrrV
mmmmmáâã($>aaaaa÷"rrrrr
mmmmmmâã($>aaaaaa"rrrrrrW
mmmmmmmã($>aaaaaaarrrrrrr
mmmmmmmm($>aaaaaaaarrrrrrrrX
mmmmmmmmm$>aaaaaaaaarrrrrrrrr
mmmmmmmmmm>aaaaaaaaaarrrrrrrrrrY


me salen otros caracteres a que se deve gracias de antemano por  todo ....


leogtz

O pudiera usarse esto:

Código (cpp) [Seleccionar]
char vector[100];
    memset(vector, 'a', sizeof(vector));
    for(unsigned int i = 0; i < 100; i++)
    std::cout << vector[i] << std::endl;
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

mapers

pero en mi funcion que cree porque me bota otros caracteres que no son ?????

do-while

¡Buenas!

A ver, si tu funcion te da caracteres extraños es por que tu cadena tiene carateres extraños. Estudia sobre cadenas, porque se te olvida un dato muy importante, saber como delimitar la infrmacion que contiene una cadena. En ningun punto de tu programa estas indicando donde termina ninguna de las cadenas que vas a imprimir.

En lugar de un bucle, o de intentar asignar valores individuales por medio de un bucle, ya que esto termina ralentizando el programa, puedes usar tambien la funcion memset. Que viene con la libreria estandar de C, en string.h, y esta optimizada para llevar a cabo el trabajo que quieres. Echale un vistazo a la libreria estandar, veras que tienes muchas funciones utiles (aunque cuidado, tambien las hay inutiles e incluso peligrosas por su falta de seguridad).

¡Saludos!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

mapers

entonces que le falta a mi programa para que no me salgan esos valores que yo no  considero ...............

MIG80

#16
 Que raro, no el código no parece tener errores.

mapers

pero si arreglo es de 100 como lo va a sobrepasar men !!

MIG80

#18
Si, si. Edite mi respuesta anterior porque me di cuenta de mi error. Bueno, se te olvido finalizar las cadenas de caracteres. Antes del cout debes poner la marca de fin de cadena ('\0') en los arreglos 'arreglo1', 'arreglo2' y 'arreglo3':


...
arreglo1[cont+1]=arreglo2[cont+1]=arreglo3[cont+1]='\0';
cout<<arreglo1<<arreglo2<<arreglo3<<endl;
...


PD: No grites y aprende a decir gracias.

Saludos.

do-while

¡Buenas!

Hombre... no se lo des todo mascadito porque asi el chaval no aprende a investigar... imagina que un dia se levanta sin internet y que no tiene ningun tutorial ni apunte ni libro, porque cada vez que no sabe algo viene aqui y en lugar de decirle lo que tiene que buscar, mirar o investigar se lo damos todo hecho. En ese momento dejara de aprender, porque como no se lo podremos decir y no tendra material no pegara un palo al agua...

¡Saludos!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!