C++ Reverse-Array
In C++, muss ich:
- Lesen in eine Zeichenkette vom Benutzer eine Eingabe und legen Sie es in ein char-array [fertig]
- Übergeben, array an eine Funktion [fertig]
- Die Funktion soll die Reihenfolge der Zeichen [problem!]
- Dann zurück in die
main()
es zeigt, dass original-array mit den neu umgekehrte Zeichen.
Ich habe Probleme beim erstellen der Funktion, die tatsächlich die Umkehrung, weil ich einige Einschränkungen:
- Ich kann keine lokalen array
Variablen. - Keine Zeiger entweder
Meine Funktion ist nur am Rande in das original-array ie:
void reverse(char word[])
EDIT: Hier ist mein code-Basis so weit:
void reverse(char word[]);
void main()
{
char word[MAX_SIZE];
cout << endl << "Enter a word : ";
cin >> word;
cout << "You entered the word " << word << endl;
reverse(word);
cout << "The word in reverse order is " << word << endl;
}
void reverse(char myword[])
{
int i, temp;
j--;
for(i=0;i<(j/2);i++)
{
temp = myword[i];
myword[i] = myword[j];
myword[j] = temp;
j--;
}
}
Ist dieses Hausaufgaben? Die Beschränkungen klingen ziemlich willkürlich für die Reale Welt.
Greg, ja - es ist sicher Hausaufgaben, und ich fühle die gleiche Weise!
j scheint nicht zu sein, erklärte überall. auch ich bin sicher, dass jemand möchte, um die Antwort als "Antwort" gekennzeichnet
Greg, ja - es ist sicher Hausaufgaben, und ich fühle die gleiche Weise!
j scheint nicht zu sein, erklärte überall. auch ich bin sicher, dass jemand möchte, um die Antwort als "Antwort" gekennzeichnet
InformationsquelleAutor | 2009-07-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Trotz dieser ganz homeworky, darf ich vorschlagen:
oder, besser noch, die klassischen XOR-Implementierung:
Ich bin sicher, es tut. Was haben Sie gelernt?
Ich habe gesehen, diese Frage im C++ - bezogenen job-interviews. Ich Stimme mit Greg. Es ist wichtig, dass Sie verstehen, wie seine Lösung funktioniert. Auf einem verwandten beachten, die in der realen Welt könnte man einfach die standard-reverse-Algorithmus zur Umkehrung der Reihenfolge der Zeichen im array, d.h. std::reverse(Wort, Wort + strlen(Wort)). Die würde ich nicht geben, die einfache Lösung für Ihre Lehrer, aber. 🙂
Mit XOR werden weit langsamer als swapping mit einem temp-Objekt.
InformationsquelleAutor Dave Gamble
Da dies Hausaufgaben, ich werde zeigen Sie auf eine Lösung, ohne einfach nur geben Ihnen die Antwort.
Ihre
reverse
Funktion ändern können dieword
übergeben wird. Eine Sache, die Sie benötigen, um zu wissen, wie lange das Wort ist (so dass Sie wissen, wie viele Buchstaben auf der Rückseite), können Sie diese aus derstrlen()
Funktion. Wenn Sie nicht gestattet, die Zeiger verwenden, dann können Sie einen lokalenint
index-Variablen.Ein string ist genau das gleiche wie ein Zeichen-array. Sie können Aufruf strlen(Wort).
Danke Greg, ich wurde immer ausgelöst durch eine 'Warnung', dass es war mir. Es war das Gebäude einfach nur gut.
InformationsquelleAutor Greg Hewgill
Wenn wir reden, sind C-Strings, die dann Ihre Funktion sollte
Erste Antwort die gleiche Frage (das ist ein dupe von Reverse-ein Satz, in C?)
Nicht dies tun Sie, was Sie suchen, sondern bekommt Sie ganz nah!
Credits an @devinb.
Diese nicht zurück die Umgekehrt array, verlangt die Frage.
Woher kommt es, dass muss wieder rückgängig gemacht-array?
in der main () -, zeigt es, dass die original-array mit den neu umgekehrte Zeichen"
ok, aber nicht "zurückgeben ", wie in der return-Anweisung richtig?
InformationsquelleAutor Tom
//dieses Programm hilft Ihnen, zu finden, die minimale und maximale Anzahl in einem array
InformationsquelleAutor cs11