Foros del Web » Programación para mayores de 30 ;) » C/C++ »

convertir cadena de caracteres en dos subcadenas de tamaños predeterminados

Estas en el tema de convertir cadena de caracteres en dos subcadenas de tamaños predeterminados en el foro de C/C++ en Foros del Web. Hola, muy buenas, tal y como dice mi título, mi problema es que tengo una cadena de caracteres y quiero dividirla en dos de tamaños ...
  #1 (permalink)  
Antiguo 04/10/2010, 09:48
 
Fecha de Ingreso: abril-2010
Mensajes: 23
Antigüedad: 14 años
Puntos: 0
convertir cadena de caracteres en dos subcadenas de tamaños predeterminados

Hola, muy buenas, tal y como dice mi título,
mi problema es que tengo una cadena de caracteres y quiero dividirla en dos de tamaños conocidos. No tengo mucha experiencia en strings.
si alguien me puede ayudar-...
MUCHAS GRACIAS.
  #2 (permalink)  
Antiguo 04/10/2010, 15:38
 
Fecha de Ingreso: enero-2008
Ubicación: Oruro
Mensajes: 50
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: convertir cadena de caracteres en dos subcadenas de tamaños predeterminado

la cadena lo declaraste como string o como char[100]?
si es string aca esta el codigo
-----------------------------------------
#include<cctype>
#include<iostream>
#include <string>
using namespace std;
int main(){
string a="1234567890",b;
b=a.substr(0,5);
a=a.substr(5,5);//si no quieres perder la informacion original declaras otra cadena y guardas ahi la subcadena de a
cout<<b<<"++"<<a<<endl;
system("pause");
return 0;
}
----------------------------------------
ahora te explico como utilizar substr , el primer valor es el lugar desde donde iniciara la subcadena , y el segundo valor es la cantidad de lugares que debe recorrer hasta el final de la subcadena, no es el final de la subcadena .
ejem:
a= "ab124d"
b=a.subtr(2,3)
b="12"este esta mal
b="124"este esta bien
saludos^^.
PD: no lei bien quieres que sea de tamaños predeterminados? o la division de la cadena en dos? para cualquiera yo creo que con el codigo de arriba te podras guiar pero si es un valor predeterminado seria b=a.substr(0,k) a=a.subtr(k,k) .
pero si aun tienes alguna duda la comunicas

Última edición por geforcefx; 04/10/2010 a las 19:05
  #3 (permalink)  
Antiguo 07/10/2010, 05:18
 
Fecha de Ingreso: abril-2010
Mensajes: 23
Antigüedad: 14 años
Puntos: 0
Respuesta: convertir cadena de caracteres en dos subcadenas de tamaños predeterminado

Muchas gracias, xo estoy utilizando char, creo q ya se mas o menos como se hace, xo las variables tienen un comportamiento raro, tengo dos variables tipo *char:
char *c, char *d, se van a utilizar para guardar lo que me devuelve una función, y resulta que al llamar a la función por segunda vez, el valor de la primera variable toma el de la segunda y se quedan las dos iguales. ¿como puede ser?
  #4 (permalink)  
Antiguo 07/10/2010, 07:57
 
Fecha de Ingreso: enero-2008
Ubicación: Oruro
Mensajes: 50
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: convertir cadena de caracteres en dos subcadenas de tamaños predeterminado

puedes poner el codigo , asi te podre ayudar mejor.
saludos^^.
  #5 (permalink)  
Antiguo 07/10/2010, 08:51
 
Fecha de Ingreso: octubre-2010
Ubicación: Edo. de México
Mensajes: 94
Antigüedad: 13 años, 7 meses
Puntos: 9
Respuesta: convertir cadena de caracteres en dos subcadenas de tamaños predeterminado

no se si sea exactamente lo que necesitas, pero aqui hice un pequeño programa con una funcion para obtener sub cadenas utilizando arreglos de chars.
Código c:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main (){
  5.   char *cadenota = "Quiero separar esta cadena en dos subcadenas";
  6.   char subcadena1[50];
  7.   char subcadena2[50];
  8.   int tamanio = 10;
  9.   bzero((char *)&subcadena1, sizeof(subcadena1));
  10.   bzero((char *)&subcadena2, sizeof(subcadena2));
  11.   if(subCadena(cadenota, (char *)&subcadena1, 0, tamanio) < 0){ //subCadena de 10 elementos a partir del indice 0
  12.     printf("Error al obtener subCadena1\n");
  13.     return 0;
  14.   }
  15.   if(subCadena(cadenota, (char *)&subcadena2, tamanio,  tamanio * 2) < 0){//subCadena de 20 elementos a partir de indice 10
  16.     printf("Error al obtener subCadena2\n");
  17.     return  0;
  18.   }
  19.   printf("Original: %s\n", cadenota);
  20.   printf("Subcadena1: %s\n", subcadena1);
  21.   printf("Subcadena2: %s\n", subcadena2);
  22.   return 1;
  23. }
  24.  
  25.  
  26. int subCadena(char *cadena, char *destino, int desde, int tamanio){
  27.   int contador = 0;
  28.   while(contador < tamanio){
  29.     if(cadena[desde + contador] == 0){
  30.       return -1;
  31.     }
  32.     destino[contador] = cadena[desde + contador] ;
  33.     contador++;
  34.   }
  35.   return contador;
  36. }

Me arroja este resultado
Código:
Original: Quiero separar esta cadena en dos subcadenas
Subcadena1: Quiero sep
Subcadena2: arar esta cadena en
  #6 (permalink)  
Antiguo 13/10/2010, 08:36
 
Fecha de Ingreso: abril-2010
Mensajes: 23
Antigüedad: 14 años
Puntos: 0
Respuesta: convertir cadena de caracteres en dos subcadenas de tamaños predeterminado

Muchiiisimas gracias!!!!!!!!!

Etiquetas: caracteres, dos, tamaños, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:45.