#include<stdio.h>
#include<assert.h>
int reverse_str(char *start, char *end) //定义逆置字符串函数
{
char temp ;
assert(start );
assert(end );
while (start<end)
{
temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
char * Get_Reverse(char arr[], int len) //逆置字符数组内容的实现
{
char *Pchar = arr;
char *left = NULL;
char *right = NULL;
int WordStart = 0;
int WordEnd = -2;
int i = 0;
left = arr;
right = arr + len - 2;
reverse_str(left, right);
for ( i = 0; i < len; i++)
{
if(arr[i]==' '||arr[i]=='\0')
{
WordStart = WordEnd + 2;
WordEnd = i - 1;
reverse_str(arr+WordStart, arr+WordEnd);
}
}
return Pchar;
}
int main()
{
char arr[100];
for(int i=0;i<100;i++)
scanf("%c",&arr[i]);
int length = 0;
char *p = NULL;
length = sizeof(arr) / sizeof(arr[0]);
p = Get_Reverse(arr, length);
printf("%s", p);
}
感觉问题就出现在
```c
char arr[100];
for(int i=0;i<100;i++)
scanf("%c",&arr[i]);
但我实在没找到问题在哪