0

我想颠倒字符串存储在数组中的顺序,以便最后一个成为新数组中的第一个。到目前为止,我正在获取数据并存储在第一个数组中,但我被困在那里。我只想颠倒字符串的顺序,而不是字符串本身。

示例输入:

here is a sample
line two of test

输出:

line two of test
here is a sample

到目前为止,我将输入存储在第一个数组中:

// Accept user input until hit EOF.
while (( c = getc(stdin) ) != EOF) {
    if(input != NULL) {
        int c = EOF;
        int i = 0;

        // Accept user input until hit EOF.
        while (( c = getc(stdin) ) != EOF) {
            input[i++] = (char)c;
            input[i++] = (char)c;

            // If reached maximize size, realloc size.
            if (c == '\n') {
                input[i]='\0';
            }

            if (i == current_size) {
                current_size = i + len_max;
                input = realloc(input, current_size);
            }
        }

        input[i] = '\0';
    }
4

2 回答 2

1

假设您有一个数组char *并且您知道数组的长度:

在数组上循环,并将 position 处i的元素与 position处的元素交换n - i - 1,其中n是数组的长度。

对于n= 10,您得到:

i = 0, n - i - 1 = 9
i = 1, n - i - 1 = 8
i = 2, n - i - 1 = 7
i = 3, n - i - 1 = 6
i = 4, n - i - 1 = 5

记住在到达时停止循环n / 2

于 2012-12-03T22:38:53.763 回答
0

尝试存储在链接列表中。颠倒顺序将是更好,更简单的方法。

于 2012-12-04T04:28:09.330 回答