Kürzlich habe ich an einer Übung aus K & Rs C Buch, das heißt: Schreiben Sie ein Programm, um nachstehende Leerzeichen/Tabs aus jeder Zeile der Eingabe zu entfernen, bla bla bla. Ich habe eine Menge versucht .! mithilfe von Funktionen Möglichkeiten und funktionierten nicht so habe ich beschlossen, alles in main() gesetzt und es funktioniert einfach nicht entweder Hier ist der Code:Programm zum Entfernen nachstehender Leerzeichen funktioniert nicht! :(
#include <stdio.h>
#define MAX_INPUT 100
#define ACTIVE 1 //quit with Ctrl + C
void main(){
int i, nb, nt;
char c;
char line[MAX_INPUT];
char corrected[MAX_INPUT];
while(ACTIVE){
//get current line
for(i = 0; i < MAX_INPUT - 1 && (c = getchar()) != EOF && c != '\n'; i++)
line[i] = c;
if(c == '\n'){
line[i] = c;
}
line[i + 1] = '\0';
//correct current line
nb = nt = 0;
for(i = 0; line[i] != '\0'; i++){
if(line[i] == ' '){
nb++;
if(nb == 1)
corrected[i] == line[i];
}
else{
if(line[i] == '\t'){
nt++;
if(nt == 1)
corrected[i] == line[i];
}
else
corrected[i] == line[i];
}
}
corrected[i] == '\n';
corrected[i + 1] == '\0';
//print corrected line
printf("%s", corrected);
}
}
Also, als ich die "drucken möchten korrigierte "Version der aktuellen Zeile, druckt es stattdessen:
�
Ich würde wirklich die Hilfe zu schätzen wissen . Ich habe dies die ganze Woche versucht und es macht mich verrückt die Tatsache, dass ich den Fehler nicht finden kann xD Vielen Dank für Ihre Aufmerksamkeit, Leute! :)
Sie sollten ernsthaft in einige statische Analyse (Linting) oder bessere Compiler-Flags investieren. Platziere dein Programm in meinem Editor, bevor ich es kompiliere bekomme ich [5 Warnungen und 5 Notizen] (http://i.imgur.com/SiYKEsV.png) von 'clang'. 'gcc bad.c -Wall' zeigt [ähnliche Warnungen] (http://hastebin.com/xayuyixufa). – Oka
Kernighan und Ritchie würden sagen, dass es "int main" ist. –