copiar cadenas
Hola, estoy haciendo un programa en C que copie una cadena en otra. Me da un error que no consigo ver en la linea 8, en el void main(). Aqui os pongo el codigo.
#include <stdio.h>
#include <conio.h>
#define MAX_VALOR 20
char copiarcadenas(char[],char[])
void main()
{
char cadenaorigen[MAX_VALOR];
char cadenadestino[MAX_VALOR];
//borramos la pantalla
clrscr();
//pedimos la cadena de origen
printf("nIntroduzca la cadena que desea copiar:n");
scanf("%s",cadenaorigen);
if(cadenaorigen>cadenadestino)
{
prinf("nLa copia no puede realizarse ya que se pierden datosn");
}
else
{
cadenaorigen = copiarcadenas(cadenadestino);
printf("nLa cadena 2 sera:%sn",cadenadestino);
}
getchar();
}
char copiarcadenas(char cadenaorigen[],char cadenadestino[])
{
int contador=0;
while (cadenaorigen[contador] != ' ')
{
contador++;
cadenadestino[contador]=cadenaorigen[contador];
}
return contador;
}
Tampoco me queda claro si para copiar las cadenas se haria así y en el caso de que sea asi que el if-else este bien hecho, sobretodo la parte que llamo a la función desde el else.
Espero que me podais echar una mano.
Muchas gracias!
#include <stdio.h>
#include <conio.h>
#define MAX_VALOR 20
char copiarcadenas(char[],char[])
void main()
{
char cadenaorigen[MAX_VALOR];
char cadenadestino[MAX_VALOR];
//borramos la pantalla
clrscr();
//pedimos la cadena de origen
printf("nIntroduzca la cadena que desea copiar:n");
scanf("%s",cadenaorigen);
if(cadenaorigen>cadenadestino)
{
prinf("nLa copia no puede realizarse ya que se pierden datosn");
}
else
{
cadenaorigen = copiarcadenas(cadenadestino);
printf("nLa cadena 2 sera:%sn",cadenadestino);
}
getchar();
}
char copiarcadenas(char cadenaorigen[],char cadenadestino[])
{
int contador=0;
while (cadenaorigen[contador] != ' ')
{
contador++;
cadenadestino[contador]=cadenaorigen[contador];
}
return contador;
}
Tampoco me queda claro si para copiar las cadenas se haria así y en el caso de que sea asi que el if-else este bien hecho, sobretodo la parte que llamo a la función desde el else.
Espero que me podais echar una mano.
Muchas gracias!
/*
Privacidad: Recuerde que la informaci?n escrita en los foros de programaci?n es 100% p?blica y que su ip ser? registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisi?n y eliminaci?n.
copiar cadenas
Enviado por Nahira el d?a 4 de marzo de 2006
Hola, estoy haciendo un programa en C que copie una cadena en otra.
Me da un error que no consigo ver en la linea 8, en el void main().
Aqui os pongo el codigo.
*/
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define MAX_VALOR 20
void copiarcadenas(char[],char[]); // faltaba el punto y coma
void main()
{
char cadenaorigen[MAX_VALOR],
cadenadestino[MAX_VALOR] = "...................",
// para que no falle el if(strlen()....
str[MAX_VALOR];
//borramos la pantalla
clrscr();
//pedimos la cadena de origen
printf("nIntroduzca la cadena que desea copiar : ");
scanf("%s",cadenaorigen);
if(strlen(cadenaorigen) > strlen(cadenadestino))
// superfluo, definiste las dos cadenas de longitudes iguales
// hay que usar la guncion strlen() para hallar las longitudes
printf("nLa copia no puede realizarse ya que se pierden datosn");
else
{
copiarcadenas(cadenadestino,cadenaorigen);
printf("nLa cadena 2 sera : %sn",cadenadestino);
}
strcpy(str,cadenaorigen);
printf("n usando strcpy() : %s n",str);
getchar();
}
void copiarcadenas(char cadenadestino[],char cadenaorigen[])
{
for(int contador=0;cadenaorigen[contador] != ' ';contador++)
cadenadestino[contador] = cadenaorigen[contador];
cadenadestino[contador] = 0; // fin de la segunda cadena
}
/*
Tampoco me queda claro si para copiar las cadenas se haria as? y en el caso de que sea asi que el if-else este bien hecho, sobretodo la parte que llamo a la funci?n desde el else.
Espero que me podais echar una mano.
Muchas gracias!
Efectivamente, hay una funcion que copia cadenas, strcpy(), te puse un ejemplo
*/
Si estan incluyendo string.h, pues usenlo:
void copiarcadena(char cad1[],char cad2[])
{strcpy(cad1,cad2);
}
void copiarcadena(char cad1[],char cad2[])
{strcpy(cad1,cad2);
}