Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-01-2011
NPIdea NPIdea is offline
Miembro
 
Registrado: feb 2005
Posts: 121
Poder: 20
NPIdea Va por buen camino
Conversión unsigned char a AnsiString

Hola a todos.
Tengo un unsigned char str[3]="318";

Quiero pasarlo a un AnsiChar ss y he probado muchas cosas pero no hay forma.

ss=AnsiChar(*str) me da el valor hexadecimal del primer caracter osea el 51.

He probado con new String y tampoco.

Notese que soy novato en c++ y no encuentro la forma de hacerlo.

Gracias.
Responder Con Cita
  #2  
Antiguo 19-01-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Me parece que lo que tu quieres hacer es convertirlo a un AnsiString o String.

Pues es fácil.

Implicitamente:

Código:
  char str[] = "318";
  Label1->Caption = str;
Explícitamente:
Código:
  char str[] = "318";
  Label1->Caption = AnsiString(str);
Es un error lo que pusiste:
Código:
char str[3] = "318";
Las cadenas en C deben terminar en un carácter nulo "\0", de forma que lo correcto es:
Código:
char str[] = "318";   //OK: el compilador reserva 4 char
char str[4] = "318"; //OK
char str[3] = "318"; // MAL
Saludos.
Responder Con Cita
  #3  
Antiguo 19-01-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Como bien indica escafandra, esto te dará un bonito error de puntero nulo que acabará bloqueando tu programa, como mínimo
Cita:
Empezado por NPIdea Ver Mensaje
.
Tengo un unsigned char str[3]="318";
El motivo:
str[0] = '3'
str[1] = '1'
str[2] = '8'
str[3] = '\0' <- si falta el puntero nulo... ¡¡¡crash!!! porque no se sabe donde acaba la cadena, puntero, etc.

En tu caso deberás declararlo como unsigned char str[4]="318";
Responder Con Cita
  #4  
Antiguo 20-01-2011
NPIdea NPIdea is offline
Miembro
 
Registrado: feb 2005
Posts: 121
Poder: 20
NPIdea Va por buen camino
Solucionado, muchas gracias a todos por vuestras respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Convertir char*, char[], string lmpadron C++ Builder 2 29-10-2010 09:08:45
Uso de AnsiString 11_8_88 C++ Builder 8 14-08-2010 20:53:47
Problema con AnsiString Pedro-Juan Varios 7 01-11-2007 08:16:39
conversion char a date gmontes Firebird e Interbase 2 23-09-2005 20:27:32
AnsiString en una Dll Trigger API de Windows 2 21-01-2004 22:53:20


La franja horaria es GMT +2. Ahora son las 19:43:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi