• Domingo 22 de Diciembre de 2024, 17:39

Autor Tema:  concatenar texto  (Leído 2997 veces)

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
concatenar texto
« en: Sábado 15 de Enero de 2011, 20:42 »
0
en la funcion:
fopen("R000.txt", "r");
nesesito que el numero (000) dependa de un array:
char miarray[4]="000";

osea que quede algo asi:
fopen("R"+miarray+".txt", "r");

¿como hago eso?

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: concatenar texto
« Respuesta #1 en: Sábado 15 de Enero de 2011, 23:19 »
0
Utiliza las funciones strcat(), strncat()

Recomiendo la segunda (strncat()).

Mas infromacion:

http://www.cplusplus.com/reference/clibrary/cstring/strncat/

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: concatenar texto
« Respuesta #2 en: Domingo 16 de Enero de 2011, 00:44 »
0
intente usar esa funcion:

Código: C++
  1. char asd[15];
  2. asd="Runas/R";//invalid combertion of 'constant char[8]' from 'char[15]'
  3.  strncat(asd,miarray,3);
  4.  

pero me sale un error en la linea que puse el comentario

Munire

  • Nuevo Miembro
  • *
  • Mensajes: 6
  • Nacionalidad: es
    • Ver Perfil
Re: concatenar texto
« Respuesta #3 en: Domingo 16 de Enero de 2011, 00:51 »
0
no puedes asignar una cadena de texto asi
 char asd[15];
 asd="Runas/R";

puesto que "asd" no es constante. tienes que hacerlo elemento a elemento
asd[0]='R';
asd[1]='u';
...

o con la funcion strcpy()
strcpy(asd, "Runas/R");

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: concatenar texto
« Respuesta #4 en: Domingo 16 de Enero de 2011, 01:18 »
0
Como te dijeron antes, no puedes asignar cadenas asi:

Código: C++
  1. micadena = "Mi texto";
  2.  

Solo es permitido hacerlo en la declaracion inicial de variables:

Código: C++
  1.  
  2.     char micadena[30] = "Mi texto";
  3.  
  4.  

La forma correcta es

Código: C++
  1. strcpy(micadena, "Mi texto");
  2.  

O si estas utilizando C++ puedes utilizar la clase string

Informacion sobre strcpy:

http://www.cplusplus.com/reference/clibrary/cstring/strcpy/

Informacion sobre la clase string:

http://www.cplusplus.com/reference/string/string/

Por tu preguntas me doy cuenta ademas que no tienes ni idea de programacion en C/C++, recomiendo entonces que leas un poco mas sobre C/C++ o bajes algun curso en internet, en especial sobre arreglos (array) y cadenas (string) en C /C++

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: concatenar texto
« Respuesta #5 en: Miércoles 19 de Enero de 2011, 07:56 »
0
También puedes usar sprintf:

Código: C
  1. char array[ 4 ] = "000";
  2. char archivo[ 16 ];
  3.  
  4. sprintf( archivo, "R%s.txt", array );
  5.  
  6. printf( "Archivo a abrir: %sn", archivo );
  7.  
La imaginación es el límite.
Hardware & Software | Mexchip