Hallo! Ich brauche mal eben schnell ne Lösung für ein Problem. Ich habe ein Array test[1] = '2'; Dieser Inhalt kann verändert werden. test[1] = '3'; test[1] = '0'; test[1] = '4'; test[1] = '1'; etc... Jetzt soll ich mit einer Programmieranweiung abfragen, ob der Array kleiner als 2 ist! Wie mach ich das am besten ? test[1] < 2; zu programmieren funktioniert leider nicht! MFG Frank
wenn ich das richtig vermute ist das ein char feld?! Dann knnst du folgendes machen if (test[1] < 50) .... besser if (48 == test[1] || 49 == test[1]) ... schau dir mal die ASCII Tabelle an ... http://de.wikipedia.org/wiki/ASCII-Tabelle Gruß Bastian
1 | if(test[1] < '2') |
2 | {
|
3 | //Anweisungen
|
4 | }
|
sollte funktionieren. Die ASCII-Zeichen für die Ziffern stehen in der ASCII-Tabelle direkt hintereinander, beginnend mit 0x30 für '0', dann 0x31 für '1' usw... Für den Compiler ist '2' nichts anderes als 0x32, und damit kann man dementsprechend größer-kleiner-gleich-Abfragen machen wie mit einer "normalen" Zahl.
Hallo ! Ich habe noch eine weiter Frage zu Arrays. Abgenommen ich habe mein Array char test[256]; Den Inhalt von test[] möchte ich gerne an einen zweiten Array neu[] direkt übergeben. char neu[256]; Wie realisiere ich den so etwas ? So wird es wohl nicht funktionieren !!! neu = test; Gibt es überhaupt so eine Möglichkeit ? Danke schon mal für Eure freundliche Unterstützung !!! Mfg Frank
Wenn das Array einen Nullterminierten String enthält, dann helfen Dir die Funktionen aus der string.h (z.B. strcpy) dabei. Ist das nicht der Fall, dann musst Du das ganze selbst in einer Schleife erledigen (oder dafür sorgen, dass Dein Array am Ende eine 0 enthält).
Autsch, klar! memcpy ist Dein Freund...
1 | #define ARRAY_SIZE 256
|
2 | |
3 | char array1[ARRAY_SIZE], array2[ARRAY_SIZE]; |
4 | |
5 | for(unsigned int i = 0; i < ARRAY_SIZE; i++) |
6 | array2[i] = array1[i]; |
Das wäre die "Selfmade"-Methode...
Frank wrote:
> neu = test;
Wenn du nur eine Referenz auf das Array haben willst, also keine Kopie,
kannst du das mit pointern machen. Und dann funktioniert das ziemlich
ähnlich wie in der Zeile:
1 | char alt[256]; |
2 | char* neu; |
3 | |
4 | neu = alt; |
Du musst dann halt auf den Inhalt über den Pointer zugreifen, also alt[0] ist dann über *neu anzusprechen. Wenn du jetzt Werte in neu veränderst wirkt sich das aber auch auf alt aus.
Dominik Riebeling wrote: > Du musst dann halt auf den Inhalt über den Pointer zugreifen, also > alt[0] ist dann über *neu anzusprechen. Du kannst aber auch ganz normale Array Syntax benutzen:
1 | char alt[256]; |
2 | char* neu; |
3 | |
4 | neu = alt; |
5 | neu[0] = 5; // greift auf alt[0] zu |
Danke für Eure Beiträge ... Jetzt bin ich wesentlich schlauer !!! Mfg Frank
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.