Mailinglist Archive: opensuse-programming-de (140 mails)
| < Previous | Next > |
Re: Konvertierung von unsigned char* auf signed char*
- From: Martin Oehler <martin.oehler@xxxxxxx>
- Date: 10 Oct 2002 15:44:55 +0200
- Message-id: <1034257495.1768.21.camel@assassin>
Hi!
----
#include <iostream>
#include <string>
int main()
{
// char nach unsigned char
// ***********************
// irgendwas -> irgendwas2
char* irgendwas = "Blahblah";
unsigned char* irgendwas2 = new unsigned char(std::strlen( irgendwas
));
// Test-Ausgabe
std::cout << irgendwas << std::endl;
// Konvertieren
for( unsigned int i = 0; i < std::strlen( irgendwas ); i++ )
{
irgendwas2[i] = static_cast<unsigned char>( irgendwas[i] );
}
// Test-Ausgabe 2
std::cout << irgendwas2 << std::endl;
// unsigned char nach char
// ***********************
// irgendwas2 -> irgendwas3
char* irgendwas3 = new char(8);
// Achtung: strlen hier nicht anwendbar
for( int i = 0; i < 8; i++ )
{
irgendwas3[i] = static_cast<char>( irgendwas2[i] );
}
// Test-Ausgabe 3
std::cout << irgendwas3 << std::endl;
return 0;
}
---
Bringt bei mir die Ausgabe
Blahblah
Blahblah
Blahblah
Das ist jetzt quick'n'dirty per Hand gehackt, irgendwo gibt's bestimmt
eine elegantere Funktion für sowas (gibt's immer :) ). Du musst im
Fall unsigned char nach char mit der Größe aufpassen. Da Du die aber
in Hochkommas zuweist
s[0]->setName("EinName");
kannst Du vorher die Größe ausrechnen. Zu den anderen Sachen gibt's
schon genug Antworten ;)
CU
Martin
----
#include <iostream>
#include <string>
int main()
{
// char nach unsigned char
// ***********************
// irgendwas -> irgendwas2
char* irgendwas = "Blahblah";
unsigned char* irgendwas2 = new unsigned char(std::strlen( irgendwas
));
// Test-Ausgabe
std::cout << irgendwas << std::endl;
// Konvertieren
for( unsigned int i = 0; i < std::strlen( irgendwas ); i++ )
{
irgendwas2[i] = static_cast<unsigned char>( irgendwas[i] );
}
// Test-Ausgabe 2
std::cout << irgendwas2 << std::endl;
// unsigned char nach char
// ***********************
// irgendwas2 -> irgendwas3
char* irgendwas3 = new char(8);
// Achtung: strlen hier nicht anwendbar
for( int i = 0; i < 8; i++ )
{
irgendwas3[i] = static_cast<char>( irgendwas2[i] );
}
// Test-Ausgabe 3
std::cout << irgendwas3 << std::endl;
return 0;
}
---
Bringt bei mir die Ausgabe
Blahblah
Blahblah
Blahblah
Das ist jetzt quick'n'dirty per Hand gehackt, irgendwo gibt's bestimmt
eine elegantere Funktion für sowas (gibt's immer :) ). Du musst im
Fall unsigned char nach char mit der Größe aufpassen. Da Du die aber
in Hochkommas zuweist
s[0]->setName("EinName");
kannst Du vorher die Größe ausrechnen. Zu den anderen Sachen gibt's
schon genug Antworten ;)
CU
Martin
| < Previous | Next > |