要求:
不能使用库函数。
只能开辟有限个空间(空间个数和字符串的长度无关)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int MyStrlen(char *str)
{
int len = 0;
while (*str != '\0')
{
len++;
str++;
}
return len;
}
void ReverseStr(char *str, char *left, char *right)
{
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
int ReverseSentence(char *str)
{
int len = MyStrlen(str);
char *cur = str;
char *left = str;
char *right = str + len - 1;
ReverseStr(str, left, right);
while (*cur != '\0')
{
char *start = cur;
while (*cur != ' '&&*cur != '\0')
{
cur++;
}
ReverseStr(str, start, cur - 1);
if (*cur == ' ')
{
cur++;
}
}
return str;
}
int main()
{
char str[] = "i am a student";
printf("%s\n", ReverseSentence(str));
system("pause");
return 0;
}