有一个字符数组的内容为:“student a am i”,
请你将数组的内容改为"i am a student".
#include <stdio.h>
#include <windows.h>
int m_strlen(char* str)
{
int count = 0;
while (*str)
{
count++;
str++;
}
return count;
}
void reverse_str(char* start, char* end)
{
while (start < end)
{
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
void reverse(char *str)
{
char *start = str;
char *end = str + m_strlen(str) - 1;
//子串的起始指针
char *cur_start = str;
//整体逆转一遍
reverse_str(start, end);
//局部子串逆转
while (*cur_start)
{
char *start = cur_start;//定义子串头指针
while ((*cur_start != ' ') && (*cur_start != '\0'))
{
cur_start++;//寻找子串尾指针
}
//逆转子串
reverse_str(start, cur_start - 1);
if (*cur_start == ' ')
{
cur_start++;
}
}
}
int main()
{
char str[] = "student a am i";
printf("%s\n", str);
reverse(str);
printf("%s\n", str);
system("pause");
return 0;
}