题解 | #单词倒排#

单词倒排

https://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836

#include <stdio.h>
#include <string.h>
char* reverse(char* p, char* end)
{
	char* start = p;
	while (end > p)
	{
		char t = *p;
		*p = *end;
		*end = t;
		end--;
		p++;
	}
	return start;
}

int main()
{
	char arr[10001] = { 0 };
	gets(arr);
	int len = strlen(arr);
	for (int i = 0; i < len; i++)
	{
		if (islower(arr[i]) || isupper(arr[i]))
			;
		else
			arr[i] = ' ';
	}
	reverse(arr, arr + len - 1);
	char* start = arr;
	while (*start)
	{
		char* end = start;
		while (*end != ' ' && *end != '\0')
		{
			end++;
		}
		reverse(start, end - 1);
		start = end + 1;

	}
	printf("%s\n", arr);

	return 0;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务