Umgekehrte Reihenfolge der Wörter im string

Bereite ich für ein entry-level-job interview. Ich bin versucht, die Reihenfolge der Wörter in einem string, aber meine Ausgabe ist ein Haufen Müll, der keinen Sinn macht. Ich denke, das problem kann sein, da bin ich mit "char*" für meine Aufgaben? Anyways, hier ist mein code

#include <iostream>
#include <string>
using namespace std;

char* reverse(char* str, int a, int b); 
char* reversewords(char* str); 

int main()
{
    char str[] = "The interview is";
    cout<<"Reverse is: "<<reversewords(str); 
    cin.ignore();
    return 0;
}


char* reverse(char* str, int a, int b)
{
    int length = a-b;

    for (int i=a; i<b+1; i++)
    {
        char c =str[length-i-1];
        str[length-i-1]=str[i];
        str[i] = c;
    }
    return str;
}

char* reversewords(char* str)
{
    int length = strlen(str);
    int a=0;
    int b=0;
    while (b<length)
    {
        if (str[b]==' ' || b==length-1)
        {
                b=b-1;
            reverse(str, a, b);
            a=b+2;
            b=a;
        }
        b++;
    }
    return str;
}
mögliche Duplikate von Umkehren der Reihenfolge der Worte in einem string
Wie könnte man sich sogar Fragen, diese ohne die Webseite, die Warnung, dass es ist gebeten worden, eine million mal bereits?
Sollte das nicht für loop-Signatur: for (int i = a; i > b+1; i--) (verwenden Sie > statt < - und Dekrement -i).

InformationsquelleAutor user3370198 | 2014-03-02

Schreibe einen Kommentar