C ++以相反的顺序存储字符串

时间:2014-01-28 21:07:08

标签: c++ arrays

如何以相反的顺序将数组的内容存储到新数组中。

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

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

如何编写一个语句以反向顺序将char str [13]的内容存储到revstr [13]

5 个答案:

答案 0 :(得分:3)

看看这个字符串:

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转到7length - 1),e1转到6。 。a70

你现在应该可以自己编写循环了。请注意,这些是基础知识,你应该从一些书中学到,而不是在这里询问。

答案 1 :(得分:1)

只需使用std::string

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

答案 2 :(得分:1)

你需要获取数组中的最后一个元素,然后循环遍历每个元素,然后将其存储到revstr [13]。更多相关内容http://www.cplusplus.com/forum/general/14951/

答案 3 :(得分:0)

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

答案 4 :(得分: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);
}