一、题目描述
循环输入。每组数据为一个长度不超过 10^5 的字符串,将输入的字符串反转过来,并打印。必须原地修改输入数组。当没有任何输入时,程序结束。
方法:
(1)字符串反转,其实就是将第一个字符与最后一个字符交换,第二个字符与倒数第二个字符交换,以此推类
(2)因为这里是交换值,所以采用值传递
(3)写一个交换函数,用指针,交换地址
(4)在主函数中,遍历数组,对一次遍历,都进行一次字符的交换,
(5)直至循环结束,输出字符串即可
代码如下:
#include "stdio.h"
#include "string.h"
void swap(char*a,char*b)
{
*a=*a^*b;
*b=*a^*b;
*a=*a^*b;
}
char str[100000];
int main()
{
int i;
while(scanf("%s",str)!=EOF)
{
for(i=0;i<strlen(str)/2;++i)
{
swap(&str[i],&str[strlen(str)-1-i]);
}
printf("%s",str);
}
return 0;
}