简单的字符串翻转(只有单词反转,单词里的字母不反转)

题目要求:用C/C++来实现字符串的反转。比如:字符串”I am student.”反转之后变成了”student. am I”。(只有单词反转,单词里的字母不反转)

思路:

        通过两步来实现:

        1.将句子中的每个单词翻转。

        2.将整个句子翻转

        画图来分析:

        

//这段代码实现翻转

        

void rotate_sentence(char* s,int bigen,int end)
{
	while (bigen < end)
	{
		char temp = s[bigen];
		s[bigen] = s[end];
		s[end] = temp;
		end--;
		bigen++;
	}
}

//测试翻转

void  test_rotate_word_by_number()
{
	char s[] = "i am student.";
	char* temp = s;
	int i = 0;
	int j = i;
	for (i = 0; i <= strlen(s); i++)
	{
		if (s[i] == ' ' || s[i] == '\0')
		{
			rotate_sentence(s, j, i - 1);//对单个单词进行翻转
			j = i + 1;
		}
	}
	rotate_sentence(s, 0, strlen(s) - 1);//对整个句子进行翻转
	cout << s;
}


        

猜你喜欢

转载自blog.csdn.net/fangxiaxin/article/details/80482667