Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - bash

#61
Buenas a todos !!
vuelvo con otras dudas sobre esto de las cadenas ahora tengo una duda que me surgio sobre esto  usar las funciones de string.h  

ahora le toca a strcat , ahora tengo una estructura de y quiero copiar varios campos que son punteros o son arreglos y el resultado es el mismo , el programa crash  voy a poner el codigo  :

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <stdlib.h>
using namespace std;


struct Campos {
 char *campo1;//10 era un array de 10 campos y como quiera
 char campo2[16];
 char campo3[7];
 char campo4[8];
 char campo5[6];
 char campo6[21];


};

char datos[] ="SOLOESTO..0000000000000000000     0000000   000000000     0000.0  00000-00-10011:00:00 ";

int main(){
  Campos cmp1;
  memset(&cmp1, 0x00, sizeof(Campos));
 char *token = strtok(datos , " ");
 while(token != NULL)
 {
    cout << " "<<endl<< token;
    token = strtok(NULL, " ");

 }
 int iteraciones= 0;

  cout << "iteraciones ----------------------------------------";
 for( ; iteraciones < 11; iteraciones++)
 {

   if(iteraciones < 12)
   {
     strncat(cmp1.campo1,&token[iteraciones], 1);
     cout << cmp1.campo1;
   }



 }


}


Gracias !!
#62
me imagino que no es posible con tan limitadas opciones pero me imagino que en otro contexto se podra , ejejeej gracias aprendi algo

la verdad me esta gustando mas esto

una pregunta del mismo tema que ocuparia cada caracter (tamano)?
#63
Stakewinner00 fue mal formulada mi pregunta disculpa !!

Peregring-lk eso es lo que me pasa
#64
y si uso memset estaria correcto ?  la mayoria de codigo que me entregaron aqui inicializa los punteros con eso , el codigo es c++ pero no puedo usar new y me dijeron que me olvide de malloc q no funciona  :'(
#65
estaba viendo de un tema pasado sobre caracteres y cadena en c


estoy probando algo de c++ aunque no me han aprobado en el trabajo para hablar ahora por que el programa estalla ?
Código (cpp) [Seleccionar]
//this is cpu intesive function
char *szDropToken(char * szBufferCompleto){

  string szBuffer[2000];
      int len= strlen(szBufferCompleto);
      int inlen = 0;
      char *szRet;


     
      while( len >inlen  )
      {
      char *pch =strtok( szBufferCompleto , " ");
      while(NULL, " "){
      pch =  strtok(NULL, " ");
      szBuffer[len] = pch;

      if(strstr(szBuffer[inlen].c_str(), "<ArhivoTransacciones>") == NULL )
      {
      inlen++;
     
      continue;
      }else break;

      }

      for(int i; i < inlen ; i++)
      {

              strcat(szRet, szBuffer[i].c_str());

      }
   retunr szRet;
      }


aun explota el programa
#66
Bueno es c y un c++ recortado !! jajajaja

gracias ,  aunque lo que quiero es por ejemplo   

strcpy(caracterAcaracter, szBuffer1[1]); por ejemplo jajajja si es dificil
#67
tienes razon con c++ podria ser mas facil , pero tengo que usar c y estoy limitado ne recurso por eso quiero saber si alguien me da un pequeno tip , he intentado pero todo  ha sido en vano , no pongo todo el codigo pero creeme  todo esos bufferes tienen motivo de estar ahi , quiero parsear un xml y solo quiero obtener una subcadena o quiero "chop" y solo sacar una parte por que a donde la voy a pasar (dispositivo empotrado ) tiene poca memoria y quiero recortar a ver si pueder reducir el tamano , lo digo para dar mas info de lo que quiero hacer.

ahora estoy pensando cortar palabra por palabra , me recomienda usar strtok  con un puntero de dos dimensiones ? tengo el tamano maximo de caracteres que quiero capturar "


por cierto strcpy () es strcpy(char * c, const char * dd);
el compilador me da un error cuando trato de compilar con una buffer o char * no constante , es lo mismo con strcat y derivados de ellos .

Gracias
#68
fue un error digintandolo aqui , ayer tenia sueno, lol , pero de todos modos cuando trato de usar strcpy o strcat me da u error ya que el dato no es constante ,y uso el indice para copiar el programa estalla !!

tambien estoy  he intentando esto:
Código (cpp) [Seleccionar]

#include<cstring>
#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;


int main(){
   
 char *szBuffer ={"est buffer es enorme y solo quiero<aqui> cargar una parte del "};
   int inlen = 0;
   while(strstr(szBuffer, "<aqui>")!=NULL){
     inlen++;
  }


  char *szif;
 
  for(int i = 0 ; i < inlen; i++ )
  {
      memset(szif, szBuffer[i], inlen);
     cout << szif[i]<<endl ;
   }  


}





y tambien intente este

Código (cpp) [Seleccionar]
#include<cstring>
#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;


int main(){
   
 char *szBuffer ={"est buffer es enorme y solo quiero<aqui> cargar una parte del "};
   int inlen = 0;
 char *xc = strtok(szBuffer, " ");
   while(strtok(xc, " ")!=NULL){
     inlen++;
  }


  char *szif;
 
  for(int i = 0 ; i < inlen; i++ )
  {
      memset(szif, szBuffer[i], inlen);
     cout << szif[i]<<endl ;
   }  


}



Código (cpp) [Seleccionar]
/* strtok example */
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
int main ()
{
  char str[] ="- caracter de ejemplo buscado espacios.";
  char *szBuffer;
  memset(szBuffer, 0x0, 2000 );
  char *pch = strtok(str, " ");
  while(pch != NULL)
  {
    strcat(szBuffer, pch);
    strcat(szBuffer, "\n");
    pch= strtok(NULL, " ");
    cout <<szBuffer <<endl;
   
  }
  return 0;
}


como podria usar memset en puntero de dos dimensiones !!
y me da core dmped

y que inclui ctime lo pueden obviar por favor :)


y como dije anteriormente strcpy , strncpy, strcat , strncat solo aceptan el segundo argumento const  char * y la verdad seguire intentandolo ,gracias

gracias
#69
Buenas a todos !!

tengo una duda , tengo un par de horas tratando de hacer algo con un string es quiero copiar caracter a caracter usando varoas funciones pero nada de funcionar le pondre lo que he hecho.
Código (cpp) [Seleccionar]



#include<cstdlib>
#include<cstring>
#include<iostream>

using namespace std;

void copiar(){
   char *szBuffer1 = "mi cadena es esta ";
   char *szCopia;
  char  caracterAcaracter[30];
   
   ///la plataforma en la que lo uso no tiene malloc
  memset(szCopia, 0x00, strlen(szBuffer1));


    for(int i = strlen(szBuffer1)); i < -1 ; i--)
      {

       caracterAcaracter[i] = szBuffer[1];
      strcat(szCopia, szBuffer1[i]);
     strcpy(szCopia, szBuffer1[i]); ///igual pasa con los que piden n caracateres para cpiar
                                                   /// no me deja por que el segundo argumento pide const char *
                                                   ///strtok no se bien si alguien me aconseja si me conviene                                               
}





}











podrian darme algun consejo o decirme donde podria leer mas sobre lo string y caracteres , gracias y discuplen la molestia .
#70
disculpa tienes razon en todo jeje estoy mal pero lo tire asi , lo del + 5 es la duda y pense que lo habia actualizado es que cuando lo imprimo aparece el pause  de system("pause"). pero me imagino que es que todas los valores de tipo cadena estan en algun sitio juntos en memoria(disculpen mi ignorancia ) bueno me parecio interesante pero no lo entiendo voy a leer  a ver q consigo..gracias !!