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 heisstint 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