Schleife



  • Ich habe ein Problem. Ich brauche eine Schleife die eine Eingabe analysiert.
    Dabei soll die Schleife den Anfang und das Ende jeder Zeichenkette speichern.
    Also, zum Beispiel:
    anmelden\o
    login 5\o
    kauf vw 25\o

    Ich brauche also die Position der Leerzeichen und des Ende-Zeichens\o.
    Mit +1 und -1 kann ich mir dann die Position der Worte errechnen.

    Aber die Schleife krieg ich einfach nicht hin.

    Bitte helft mir!



  • hmm, ich hab mal was ähnliches gemacht... ich hab dabei einfach aus einer textdatei gelesen...

    hier ein ansatz, vieleicht kannst du dir daraus etwas basteln =b

    void readFile(char string[25][100], const char file[]){
    
    	FILE* dat;
    	int i, j=0;
    	char help='i';
    
    	dat=fopen(file,"r");
    
    	if(dat == NULL){
    		printf("Fehler beim %cffnen!\n", OE);
    		exit(-1);
    	}
    
    	for(i=0; i<25; i++){
    		do{
    			help=fgetc(dat);
    			switch(help){
    				case 'ö': 
    					help=oe;
    					break;
    				case 'Ö':
    					help=OE;
    					break;
    				case 'ä':
    					help=ae;
    					break;
    				case 'Ä':
    					help=AE;
    					break;
    				case 'ü':
    					help=ue;
    					break;
    				case 'Ü':
    					help=UE;
    					break;
    				case 'ß':
    					help=ss;
    					break;
    				case ';':
    					help='\0';
    					break;
    			}
    			string[i][j++]=help;
    		}while(help != '\0' && j < 100);
    		j=0;
    	}
    }
    

    ach ja, fürs ss oder OE etc. brauchst du nach den includes einfach folgendes
    einfügen:

    #define AE (unsigned char)142
    #define ae (unsigned char)132
    #define OE (unsigned char)153
    #define oe (unsigned char)148
    #define UE (unsigned char)154
    #define ue (unsigned char)129
    #define ss (unsigned char)225
    

    ich weiß nicht wieso, aber printf hat irgendwie probleme damit, sowas richtig
    wieder zugeben:

    printf("ä");
    

    es kommt jediglich irgend ein zeichen. scanf jedoch kann ein ä,ö,ü,ß etc.
    erkennen. schreib bei einer ausgabe oder bei einer ausgabe zum beispiel:

    printf("M%crder", oe); // Mörder
    

    zu fragen stehen ich gerne zur verfügung...

    gruß
    ITEDVO

    PS: mit dieser funktion lese ich folgendes ein:

    B. Daniel;
    B. Manuel;
    D. Wolfgang;
    F. Philipp Johann;
    G. Erik;
    G. Gerald;
    H. Pascal Maximilian;
    K. Andreas;
    K. Christoph Michael;
    K. Sebastian;
    K. Johannes;
    M. Martin;
    M. Thomas;
    M. Mathias;
    N. Julia;
    P. Maximilian;
    R. Sven Marcel;
    S. Lukas;
    S. Sebastian Heinz;
    S. Georg;
    S. Stefan;
    S. Philipp;
    T. Dominik;
    W. Nino;
    W. Christian;
    

    Familiennamen zensiert, was ja klar ist xD dort kommen aber eben ö,ü,ä etc.
    vor =b



  • itedvo schrieb:

    ich weiß nicht wieso, aber printf hat irgendwie probleme damit, sowas richtig
    wieder zugeben:

    printf("ä");
    

    es kommt jediglich irgend ein zeichen. scanf jedoch kann ein ä,ö,ü,ß etc.
    erkennen. schreib bei einer ausgabe oder bei einer ausgabe zum beispiel:

    printf("M%crder", oe); // Mörder
    

    Mach es lieber so:

    #include <windows.h>
    #include <stdio.h>
    
    int main(void)
    {
    	char aus[] = "äÄöÖüÜß";
    	CharToOem(aus, aus);
    
    	printf("%s", aus);
    }
    

Anmelden zum Antworten