C编程实现字符串中各单词的翻转

//字符串中各单词的翻转
void reverseStr1(char* src)
{
	char* start = src, *end = src, *ptr = src;
	while (*ptr++ != '\0')
	{
		if (*ptr == ' ' || *ptr == '\0') //找到一个单词
		{
			end = ptr - 1;      //end指向单词的结尾
			while (start < end)
			{
				swap(*start++,*end--);
			}
			start = end = ptr + 1;
		}
	}

	printf("字符串为: %s\n", src);

	start = src, end = ptr - 2;  //start 指向字符串的开头 end指向字符串最后一个单词
	while (start < end)
	{
		swap(*start++,*end--);  //把整个字符串逆置
	}
}

void reverseStr2(char* src)
{
	char* start = src, *end = src, *ptr = src;

	while (*ptr++ != '\0');
	end = ptr - 2;

	while (start < end)
	{
		swap(*start++, *end--);
	}
	start = src, end = ptr - 2;
	ptr = start;

	while (*ptr++ != '\0')
	{
		if (*ptr == ' ' || *ptr == '\0')
		{
			end = ptr - 1;
			while (start < end)
				swap(*start++,*end--);

			start = end = ptr + 1;
		}
	}
}



int main()
{
	char strSrc[] = "Hello world!";

	reverseStr2(strSrc);

	printf("字符串为: %s\n", strSrc);

	system("pause");
	return 0;
}
发布了48 篇原创文章 · 获赞 1 · 访问量 2504

猜你喜欢

转载自blog.csdn.net/lpl312905509/article/details/104079706