题目要求:输出一个字符串,长度 0< n <10000,逆向输出它。

如,

输入:I am a cup.

输出:.puc a ma I


分析:题目要求我们逆序输出,而不是更改字符串在内存中的存储顺序,所以我们依然写一个函数,然后使用以const修饰的指针来解题。

#include <stdio.h>
#include <assert.h>
#include <string.h>

void Reverse_print_arr(const char* arr, int len)
{
	assert(arr);
	int i = 0;

	for (i = len - 1; i >= 0; i--)
	{
		printf("%c", *(arr + i));
	}
}

int main()
{
	//题目要求字符串在1~1000之间,所以我们定义成10001,让永远有一个地方可以放'\0'
	char arr[10001] = {0};
	int len = 0;

	//scanf无法读取空格,所以使用gets
	gets(arr);
	len = strlen(arr);
	Reverse_print_arr(arr, len);

	return 0;
}