Probleme bei ersetzen eines Characters in einem String



  • Hallo!

    Mein Programm liest eine Zeile ein. Wenn diese Zeile ein & enthält, so soll die Variable nebenläufig auf 1 gesetzt werden, ansonsten soll sie 0 bleiben.
    Sie bleibt jedoch stets 0, woran könnte dies liegen?

    Danke!

    #include <stdio.h>
    #include <ctype.h>
    #include <stdlib.h>
    #include <windows.h>
    
    #define MAXCHARACTERS 100
    
    main()
    {
     	int nebenlaeufig=0;
     	char * pch;
    	char currentLine[MAXCHARACTERS];
    
    	scanf ("%s",currentLine);
    	pch = strchr(currentLine,'&');
    	if (pch != NULL){
    		currentLine[pch - currentLine] = ' ';
    		nebenlaeufig=1;
    	}
    	printf("%d\n%s\n",nebenlaeufig, currentLine);
    	return 0;
    }
    


  • Gayson schrieb:

    scanf ("%s",currentLine);
    

    liest nur bis zum nächsten Whitespace. Vermutlich hast du bis dahin noch kein &.

    btw:
    Es heisst

    int main(void)
    


  • Ersetze deine scanf zeile durch fgets wie folgt:

    #include <stdio.h>
    
    #define MAXCHARACTERS 100 
    
    int main(int argc, char **argv) 
    { 
        int nebenlaeufig = 0; 
        char * pch; 
        char currentLine[MAXCHARACTERS]; 
    
        fgets(currentLine,MAXCHARACTERS,stdin);
    
        pch = strchr(currentLine,'&'); 
    
    	if (pch != NULL)
    	{ 
            currentLine[pch - currentLine] = ' '; 
            nebenlaeufig=1; 
        } 
        printf("%d\n%s\n",nebenlaeufig, currentLine); 
        return (0); 
    }
    

    dann funzts!

    mfg hohesC


Anmelden zum Antworten