Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hi,

ich habe zZ ein Problem, an dem ich mir die Zähne ausbeiße. Ich habe einen CStringArray und möchte die CStrings die da drin stehen in einen Char umwandeln. Da ich dies an mehreren Stellen im Programm muss, würde ich mich freuen, wenn mir jemand mit ner Funktion helfen könnte, der ich den CString übergebe also etwa so:

 

CString String = CStringArray.GetAt(i)

char Convert = StringConvert(String) 

und dann krieg ich den Char zurück

thx B

 	CString string = "Hier ist der String.";

	char str[20];

	strncpy(str, string.GetBuffer(0), string.GetLength());

	str[string.GetLength()] ='\0';

 

Du kannst einen CString nicht in einen char umwandeln, weil ein char nur ein Zeichen fasst. Falls Du einen char* meinst, dann kommt es darauf an, ob Du den String nur lesen oder auch ändern willst.

Wenn Du nur lesen willst, dann kannst Du einfach den CString anstelle des char* einsetzen. Die Klasse CString hat einen cast-operator für LPCTSTR, das funktioniert dann automatisch.

Falls Du den String ändern musst, dann ist toostens Weg der richtige. Allerdings solltest Du den Speicher dynamisch holen, wenn Du nicht vorher weisst, wie lang der String ist:


CString strDeinCString = "...";
char* pszString = new char[ strDeinCString.GetLength() + 1 ];
if( !pszString ) {
... // Fehlerbehandlung
}
strcpy( pszString, strDeinCString );
[/code] Das letzte Zeichen musst Du nicht auf 0 setzen, dass macht strcpy für Dich. Allerdings musst Du, nachdem Du ihn nicht mehr brauchst, den String mit
[code]
delete pszString;

wieder freigeben.

hi,

will nur was lernen.....

-----------------------

du hast gesagt

delete blabla

soll das nicht heißen:

delete []blabla

? und warum?

danke im Voraus für ne nette Antwort.

HighFliegender

Du hast Recht. Wenn man einen Array mit new[] holt, dann sollte man ihn auch mit delete[] freigeben.

In diesem Fall funktioniert es aber trotzdem.

Der Unterschied zwischen delete und delete[] besteht bei Arrays darin, dass delete nur den Destruktor des ersten Elements aufruft, während delete[] den Destruktor für jedes Element des Arrays aufruft.

Bei Array-Elementen, die wie in diesem Fall keinen Destruktor haben oder brauchen, macht es keinen Unterschied.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.