输入一行字符串,把字符串翻转 。
Input: I____am__a__student
Output: student__a__am____I
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void reverse(char *str, int beg, int end)
{
for (int i = beg , j = end; i < j; ++i, --j)
{
char tmp = str[i];
str[i] = str[j];
str[j] = tmp;
}
}
int main()
{
char str[100];
while (memset(str, 0, sizeof(str)), fgets(str, sizeof(str), stdin) != NULL)
{
str[strlen(str) - 1] = '\0'; //fgets去掉换行
reverse(str, 0, strlen(str) - 1);
int wordBeg = 0;
int wordEnd;
while (1)
{
while (str[wordBeg] == ' ')
{
++wordBeg;
}
if (wordBeg >= strlen(str))
{
break;
}
wordEnd = wordBeg;
while (str[wordEnd + 1] != ' ' && str[wordEnd + 1] != '\0')
{
++wordEnd;
}
reverse(str, wordBeg, wordEnd);
if (str[wordEnd + 1] == '\0')
{
break;
}
else
{
wordBeg = wordEnd + 1;
}
}
puts(str);
}
}