2016-03-19 12 views
-6
#include <stdio.h> 
#include <string.h> 

typedef char String[80]; 

int main() { 
    String originalStr = "mail"; 
    String reversedStr; 
    int index; 
    int len = strlen(originalStr); 

    for (index = 0; index < len; index++) { 
     reversedStr[index] = originalStr[len - index -1]; 
    } 
    reversedStr[index] = '\0'; 

    printf("Original is %s, reversed is %s\n", originalStr, reversedStr); 
} 

Ich frage mich, wie kann ich ändern Sie die main Funktion verwenden, um eine void Funktion mit dem Prototyp ‚main‘ auf ‚ungültig‘ -Funktion konvertieren: void reverseString(String originalStr, String reversedStr);Kann nicht mit String

Wie in der Tat, ich kann nicht verstehe den Unterschied zwischen void und main.

+4

Sie müssen [The Definitive C Book Guide und Liste] (http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list) überprüfen und ein gutes Anfängerbuch finden oder Anleitung. Es wird Ihnen sagen, wie Sie Funktionen erstellen (was Sie eigentlich wissen, 'main' ist nur eine normale Funktion). Dann fahre fort mit [wie man gute Fragen stellt] (http://stackoverflow.com/help/how-to-ask). Und schließlich aktualisieren Sie Ihre Frage, um mit Ihrem Problem genauer zu sein, was genau ist das Problem, das Sie haben? Wie erstelle ich Funktionen? (Lesen Sie ein Buch.) Verstehen Sie, was 'void' an verschiedenen Orten bedeutet? (Lesen Sie auch ein Buch.) –

+0

Sie sollten auch C++ - Tag entfernen. –

+0

Es gibt [viele ähnliche Fragen] (http://stackoverflow.com/q/204476/1460794). – wally

Antwort

2

Bevor Sie tiefer in die Sprache C gehen, müssen Sie lernen, den Code korrekt einzurücken. Es macht deinen Code lesbar und verhindert viele dumme Fehler.

Ich formatierte Ihren Posted Code, schauen Sie, wie es gemacht wird.

Zu Ihrer Frage, Sie sollen den Code bewegen zum Umkehren der Zeichenfolge in eine separate Funktion, für die Sie den Prototyp gegeben:

#include <stdio.h> 
#include <string.h> 

typedef char String[80]; 

void reverseString(String originalStr, String reversedStr) { 
    int index; 
    int len = strlen(originalStr); 

    for (index = 0; index < len; index++) { 
     reversedStr[index] = originalStr[len - index - 1]; 
    } 
    reversedStr[index] = '\0'; 
}   

int main(void) { 
    String originalStr = "mail"; 
    String reversedStr; 
    reverseString(originalStr, reversedStr); 
    printf("Original is %s, reversed is %s\n", originalStr, reversedStr); 
} 

Funktionen der Basisblock in Programmiersprachen sind Funktionalität zu brechen in kleinere wiederverwendbare Schritte. Beachten Sie, dass originalStr und reverseStr in der Funktion die Namen der Funktionsargumente sind. Sie sind lokal für die Funktion. Die von main übergebenen Werte haben zufällig den gleichen Namen, aber das ist nicht notwendig. Erfahren Sie mehr von einem guten Tutorial-Buch.

Verwandte Themen