Массив реверса C++

У Вас уже неявно есть несколько неявных операторов возврата, вызванных обработкой ошибок, таким образом имейте дело с нею.

, Как типично с программированием, тем не менее, существуют примеры как за, так и против практики возврата нескольких. Если это делает код более ясным, сделайте это так или иначе. Использование многих управляющих структур может помочь ( случай оператор, например).

5
задан Mike 29 November 2012 в 15:15
поделиться

3 ответа

Despite this looking quite homeworky, may I suggest:

void reverse(char word[])
{
    int len=strlen(word);
    char temp;
    for (int i=0;i<len/2;i++)
    {
            temp=word[i];
            word[i]=word[len-i-1];
            word[len-i-1]=temp;
    }
}

or, better yet, the classic XOR implementation:

void reverse(char word[])
{
    int len=strlen(word);
    for (int i=0;i<len/2;i++)
    {
        word[i]^=word[len-i-1];
        word[len-i-1]^=word[i];
        word[i]^=word[len-i-1];
    }
}
9
ответ дан 14 December 2019 в 01:14
поделиться

Since this is homework, I'll point you toward a solution without just giving you the answer.

Your reverse function can modify the word that is passed in. One thing you'll need to know is how long the word is (so you'll know how many letters to reverse), you can get this from the strlen() function. If you're not permitted to use pointers, then you can use a local int index variable.

2
ответ дан 14 December 2019 в 01:14
поделиться

If we are talking C-Strings, then your function should be

void reverse(char word[],size_t wordlen)

First answer from the same question (this is a dupe from Reverse a sentence in C?)

This doesn't do what you are looking for, but gets you quite close!

 int ReverseString(char *rev)
         {
            if(*rev!='\0')
            {
               ReverseString(rev + 1);
               putchar(*rev);//change this.
            }

            return 1;
         }

Credits to @devinb.

-1
ответ дан 14 December 2019 в 01:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: