#include<stdio.h>
void reverse(char* x, char* y)//逆置函数,会逆置给定空间里的字符
{
while (x < y)
{
*x = *x ^ *y;
*y = *x ^ *y;
*x = *x ^ *y;
x++;
y--;
}
}
int main()
{
char arr[] = "student a am i";
int sz = sizeof(arr) / sizeof(arr[0]);
char* p = arr;
char* q = p;
reverse(arr, arr + sz - 2);//先全部逆置
//用‘ ’判断并且局部逆置
while (*p != '\0' && *q != '\0')
{
if (*q == ' ')
{
reverse(p, q - 1);
q++;
p = q;
}
q++;
}
reverse(p, q - 1);//逆置最后一个单词
printf("%s\n", arr);//打印数组
system("pause");
return 0;
}
有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
最新推荐文章于 2019-04-12 21:31:59 发布