1

私のような質問がたくさんあることは承知していますが、いくつか読んでも役に立ちませんでした。おそらく、私はプログラミングが初めてで、ポインターに苦労しているためです。

演習として、入力された文字列を逆にする関数を c++ で作成しようとしています。これが私の機能です:

char* reverse(const char* t)
{
    int j, k;
    char* aString = new char[100];

    for(j=0, k=strlen(t)-1; j < strlen(t); j++, k--)
    {
        aString[j]=t[k];
    }

    aString[j+1]='\0';

    return aString;
}

ただし、入力はまったく反転しません。私は何を間違っていますか?

4

2 に答える 2

0

C++ には、より優れた、クリーンで安全な、より簡単で読みやすいオプションがあります - std::string.

reverse()以下は、逆を返す関数の簡単な例ですstd::string

void swap(string& str, int index1, int index2) {

    char temp = str[index1];
    str[index1] = str[index2];
    str[index2] = temp;

}

string reverse(string str) {

    int size = str.size();

    for (int i = 0; i < size / 2; i++) 
        swap (str, i, size - i - 1);

    return str;

}
于 2013-08-16T01:50:25.597 に答える