翻转单词顺序,但单词中字母顺序保持不变。
void reverseword(char* begin, char* end)
{
if (begin != NULL && end != NULL)
{
while (begin < end)
{
char temp = *begin;
*begin = *end;
*end = temp;
begin++;
end--;
}
}
else
return ;
}
char* reversesentence(char* begin)
{
if (begin == NULL)
return NULL;
char* end = begin;
while (*end != '\0')
end++;
end--;
reverseword(begin, end);
end = begin;
char* result = begin;
while (*begin != '\0')
{
if (*end == '\0' || *end == ' ')
{
reverseword(begin, end - 1);
begin = end;
end++;
}
else if (*begin == ' ')
{
begin++;
end++;
}
else
{
end++;
}
}
return result;
}
void test1()
{
char sentence[] = "hello world";
cout << reversesentence(sentence) << endl;
}
void test2()
{
char sentence[] = "world";
cout << reversesentence(sentence) << endl;
}
void test3()
{
char sentence[] = " ";
cout << reversesentence(sentence) << endl;
}