题解 | #逆序输出#

逆序输出

https://www.nowcoder.com/practice/bb66c27cb7aa48f9ba7d9f88e4068285?tpId=290&tqId=352865&ru=/exam/oj&qru=/ta/beginner-programmers/question-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E8%25AF%25AD%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D290

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

void my_reverse(char* left , char* right)
{
	assert(left);
	assert(right);

	while (left < right)
	{
		*left ^= *right;
		*right ^= *left;
		*left++ ^= *right--;
	}
}


int main()
{
	char arr[100] = { 0 };
	gets(arr);
	int len = strlen(arr);
	my_reverse(arr, arr + len - 1);

	char* start = arr;
	char* end = start;

	while (1)
	{
		while (*end != ' ' && *end != '\0')
		{
			end++;
		}
		my_reverse(start, end-1);
		if (*end != '\0')
		{
			end++;
			start = end;
		}
		else break;
	}
	printf("%s", arr);
	return 0;
}

全部评论

相关推荐

09-03 14:50
长春大学 Java
牛客407945238号:这环境…怎么看都像是低配版的电诈园区
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务