copiar caracteres en una cadena

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

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

mapers

hola gente quisiera que me digan de que manera podria copiar caracteres en una cadena por ejemlo quiero copiara la letra "a" en una cadena ....

strncpy(Arreglo[i++],"a",1)----->seria de esta forma o de que manera para copiar la a dentro del arreglo...gracias de antemano 


@synthesize

strncpy(arreglo[celda],"a",1)

Así mismo, no varía mucho de lo que tu escribiste.

E intenta poner códigos completos, para comprender mejor lo que deseas hacer.

mapers

lo que quiero hacer es copiar el caracter a 100 veces en el arreglo de esa manera


Código (cpp) [Seleccionar]

for(i=0;i<100;i++)
{
strncpy(Arreglo[j++],"a",1);

}


@synthesize

100 veces en una celda o 1 vez en 100 celdas? Especifica xD

Para lo 2º:

for ( cont=0 ; cont<100 ; cont++ )
{
    strncpy (vector[cont], "a", 1);
}

mapers


@synthesize

Cita de: mapers en  8 Julio 2010, 06:52 AM
1 ves en 100 celdas

Ya te he dejado el code arriba  :xD

También lo puedes hacer sin strncpy



for ( cont =0 ; cont <100 ; cont++ )
{
   vector[cont] = num;
}



Aun que esto es para enteros claro

Littlehorse

 :o.

Que se supone que es "arreglo"? es una matriz o un vector? ten en cuenta que el primer parámetro de strncpy es char*. Si "arreglo" es una cadena, haciendo arreglo[cont] estas refiriéndote a un char.

Código (cpp) [Seleccionar]

for(int i=0;i<MAX;i++)
     arreglo[i]='a';


Lean sobre manejo de cadenas.

Saludos
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

@synthesize

Cita de: Littlehorse en  8 Julio 2010, 06:58 AM
:o.

Que se supone que es "arreglo"? es una matriz o un vector? ten en cuenta que el primer parámetro de strncpy es char*. Si "arreglo" es una cadena, haciendo arreglo[cont] estas refiriéndote a un char.

Código (cpp) [Seleccionar]

for(int i=0;i<MAX;i++)
     arreglo[i]='a';


Lean sobre manejo de cadenas.

Saludos

No se si asignar directamente un carácter a una cadena es buena práctica, pero a mi en clase (Con borland c++ 3.1) me ha dado problemas, por eso siempre acababa usando strncpy.. (Es cosa del compilador?

Littlehorse

Es que de la forma que planteaste es imposible usar strncpy, porque le pasas un char como parámetro cuando el esperado es char*.

No hay ningún problema en asignar caracteres de esa forma, porque haciendo "arreglo[i]" te referís a una posición del vector, no a toda la cadena.

La única forma de usar strcpy como plantean es que "arreglo" sea un arreglo de punteros, pero según veo no es el caso.

Suponiendo que "arreglo" es una cadena (char[]), la única forma de usar strcpy junto con la sintaxis de arreglos, es pasando la dirección de memoria de dicha posicion. Algo así:


strcpy(&array[5],"a");


Con lo cual strcpy comenzaría a copiar desde la posición expuesta. En este caso no tiene mucho sentido hacer algo así, ya que asignar caracteres a posiciones de un vector es perfectamente valido. Lo que es invalido es asignar dos cadenas (char[], por lo menos en C, no sucede lo mismo con strings en C++/STL).

Saludos
An expert is a man who has made all the mistakes which can be made, in a very narrow field.