Buchstaben in einer For-Schleife durchgehen?
-
Hallo,
ich möchte Buchstaben in einer For-Schleife durchgehen.
Beispiel:
"""""""""
for(i=A; i!=Z; i++)
{
}Also sprich den Buchstaben inkrementieren.
Gibt es da eine Möglichkeit oder muss ich zuvor alle 26 Buchstaben
in einem Array durchgehen und die Schleife für jedes Array_Element
durchlaufen?Wäre für Beispiele beider Varianten(Buchstaben inkrement und Array)
sehr dankbar.Grüße
Arndt
-
sowas?
char i; for (i='A'; i<='Z'; i++) putchar (i);
char *a = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; while (*a) putchar (*a++);
-
BTW: bin mir nicht absolut sicher, aber ich glaube der Ansi Standard legt für die Reihenfolge der Buchstaben nichts fest - daher könnte dabei auch mist rauskommen - nur für die Zeichen 0 bis 9 ist festgelegt, dass sie hintereinander folgen müssen.... mmmh...
-
Vertexwahn schrieb:
BTW: bin mir nicht absolut sicher, aber ich glaube der Ansi Standard legt für die Reihenfolge der Buchstaben nichts fest - daher könnte dabei auch mist rauskommen - nur für die Zeichen 0 bis 9 ist festgelegt, dass sie hintereinander folgen müssen.... mmmh...
na, wenn das stimmt, dann besser alles nur mit arrays machen
-
C99 schrieb:
The representation of each member of the source and execution basic
character sets shall fit in a byte. In both the source and execution basic character sets, the value of each character after 0 in the above list of decimal digits shall be one greater than the value of the previous.
-
Du kannst das Wort in eine Funktion überschreiben und dann kannste schön ordentlich in einer Funktion das Wort durchgehen:
for (i = 0; *s == *t; i++, s++, t++) { if (*s == '\0') { return 0; } }
Hier hatte ich zwei Worte miteinander Zeichen für Zeichen verglichen. Vielleicht hilft dir das etwas !
-
cHillb3rT schrieb:
Hier hatte ich zwei Worte miteinander Zeichen für Zeichen verglichen.
da fehlt wohl was...
-
erscheint auch nicht sinnvoll, das du ein i erhöhst.
-
Danke für eure Unterstützung, das mit der Schleife funktioniert einwandfrei.
Jetzt habe ich noch ein Problem mit der GetDriveType-Funktion.Jedesmal, wenn ich den Source compilieren will bringt er mir bei
GetDriveType "Missing Prototype". Könnt Ihr mir sagen, wo mein Fehler
liegt? Hier meine Funktion.char GetCurWD()
{
char aktWD_g;
char Drive;
int anzWD;
unsigned int drivetype;for (Drive='A'; Drive<='Z'; Drive++)
{char DriveChar[4];
*DriveChar=Drive;
*(DriveChar+1)=':';
*(DriveChar+2)='\';
*(DriveChar+3)='\0';drivetype = GetDriveType(Drive);
if(drivetype == 2)
{
anzWD++;//if(Datenträger beschreibbar)
//{
//Speicherung des aktuellen Laufwerkes in einem Array
//} else {
//Speicherung der nicht beschreibbaren Laufwerke in einem Array
//}}
}
return aktWD_g;
}Grüße
Arndt
-
mata schrieb:
erscheint auch nicht sinnvoll, das du ein i erhöhst.
Hatte nur in Bezug auf das Programm, in dem der Quellcodeteil steckte Sinn !
-
Das komplette Programm darf ich hier nicht veröffentlichen.
Könnt Ihr mir Beispiele für die Verwendung der GetDriveType Funktion
geben? Habe beim googeln nicht die besten Ergebnisse gefunden.Was bedeutet die Fehlermeldung des Compilers "Missing Prototype"?
Grüße
Arndt
-
Könnte die fehlende Prototyp-Kopfzeile sein, die du nicht am Anfang vor der main-Funktion nochnmal angegeben hast.
Schreib den Funktionskopf da einfach nochmal hin !
-
Hallo,
jetzt habe ich noch ein Problem mit dem Übergabeparameter der Funktion GetDriveType. Der Kompiler sagt: 1. Konvertierung von 'int' nach 'const char' nicht möglich, 2. Keine Übereinstimmung des Typs beim Parameter
'IpRootPathName' ('const char *' erwartet, 'char' erhalten)char GetCurWD()
{
// Variablen
char aktWD_g;
int anzWD;
int writableWD;
int nonwritableWD;
unsigned int drivetype;
char Drive;// Ausblenden der Windows-Fehlermeldungen
SetErrorMode(SEM_FAILCRITICALERRORS);// Scannen der Wechseldatenträger
for (Drive='A'; Drive<='Z'; Drive++)
{
char Drive = Drive && ":" && "\" && "\0";
drivetype = GetDriveType(Drive);if(drivetype == 2)
{
...
}
}
}Grüße
Arndt
-
1. Codetags benutzen
2. Im MSDN hast du doch die Erklärung der Funktion schon. Du sollst eben keinen char übergeben, sondern einen String. Und Strings werden idR. halt als char* übergebenhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/getdrivetype.asp
-
Hi,
habe versucht die Codetags zu benutzen, der Code wurde aber nicht anderst dargestellt.
Quellcode
habe ich getestet.
Anderer Aufbau?Kannst du mir noch eine Beispielübergabe an die Funktion GetDriveType geben?
Bin noch neu auf dem Gebiet.Grüße
Arndt
-
Wenn ich das Ganze so
char *Drive = Drive && ":" && "\\" && "\0"; drivetype = GetDriveType(Drive);
versuche sagt der Kompiler
Konvertierung von bool nach char * nicht möglich.Habe wohl den String falsch zusammengekettet, oder?
Wie kann ich einen String zusammenketten?Grüße
Arndt
-
ok, funzt jetzt.
Danke euch alle für eure Hilfe.
Grüße
Arndt