输入i love you so much, 输出 much so you love i.
#include<iostream>
using namespace std;
void Reverse(char *begin, char *end)
{
if(begin == NULL || end == NULL)
return;
while(begin < end)
{
char temp = *begin;
*begin = *end;
*end = temp;
begin++;
end--;
}
}
char* ReverseSentence(char *arr)
{
if(arr == NULL)
{
return NULL;
}
char *begin = arr;
char *end = arr;
while(*end != '\0')
{
end++;
}
--end;
Reverse(begin, end);
begin = end = arr;
while(*begin != '\0')
{
if(*begin == ' ')
{
begin++;
end++;
}
else if(*end == ' '|| *end == '\0')
{
Reverse(begin, --end);
begin = ++end;
}
else
{
end++;
}
}
return arr;
}
int main()
{
char arr[] = "i love you so much";
ReverseSentence(arr);
printf("%s\n", arr);
return 0;
}
本文深入探讨了字符串逆序的算法实现,通过一个具体的示例,详细解释了如何使用C++来逆序输入的字符串。文章首先定义了一个Reverse函数,用于逆序两个指针之间的字符序列,然后定义了一个ReverseSentence函数,用于逆序整个字符串及其内部的单词。最后,通过一个主函数展示了如何调用这些函数并打印逆序后的结果。
1066

被折叠的 条评论
为什么被折叠?



