2014-01-28 4 views
-3

Как сохранить содержимое массива в обратном порядке в новый массив.C++ сохранение строки в обратном порядке

char str[13]; 
char revstr[13]; 

cout << "Enter string: "; 
cin.getline(str,13); 

Как бы я написать заявление, чтобы сохранить содержимое полукокса ул [13], в обратном порядке, в revstr [13]

+4

Домашнее задание? – nothrow

+0

Однако строка - это в основном массив. См. Http://stackoverflow.com/questions/19712903/c-reverse-contents-in-array – nothrow

+1

Ваша репутация говорит вам, что вы здесь не новы, но, чтобы напомнить вам, правило здесь состоит в том, чтобы показать некоторые усилия, а затем попросить помогите, если ** действительно ** потеряно – P0W

ответ

1

Просто используйте std::string:

std::string newString(std::rbegin(oldString), std::rend(oldString)); 
+1

Я не думаю, что ей разрешено это сделать. – LihO

+0

@LihO Я не вижу в этом ничего плохого. –

+1

Это явно задание. Автор занимается массивами символов, а не строками. Что заставляет вас думать, что использование 'std :: string' будет приемлемым для этого назначения? – crush

0
char str[13], revstr[13]; 
cin>>str; 
for(int i = 0; i < 13; i++) { 
    revstr[13-i-1] = str[i]; 
} 
cout<<revstr<<"\n"; 
3

Look в этой строке:

char str[8] = "Jessica"; 

в памяти она занимает 8 байт: 7 символов + символ завершения '\0':

J | e | s | s | i | c | a | \0 

То, что вы хотите, чтобы получить это:

a | c | i | s | s | e | J | \0 

J выходит из положения 0 в 7 (length - 1), e идет от 1 до 6 ... до a, который идет от 7 до 0

Теперь вы можете написать этот цикл самостоятельно. Просто отметьте, что это фундаментальные основы, которые вы должны изучить из какой-то книги, а не спрашивать об этом здесь.

+0

Мне нравится этот ответ, потому что он не показывает, как это сделать, но дает знания, необходимые для этого. Удаление шахты. – crush

+0

Спасибо и да, это то, что я узнал год назад, так что не помню точно, как это сделать. – Jessica

1

Вам нужно получить последний элемент в массиве, а затем пропустить каждый элемент, изменяющий порядок, а затем сохранить его в revstr [13]. Подробнее об этом здесь http://www.cplusplus.com/forum/general/14951/

0
#include <iostream> 

int main(int argc, char** argv) { 

    char str[13]; 
    char revstr[13]; 

    std::cout << "Enter string: "; 
    std::cin.getline(str, 13); 

    for (int i = 0; i < 13; i++) { 
     revstr[12 - i] = str[i]; 
    } 

    for (int i = 0; i < 13; i++) { 
     std::cout << revstr[i] << " "; 
    } 

    system("pause"); 
    return (0); 
} 
Смежные вопросы