题目: 请编写一个C函数,该函数将一个字符串逆序
#include<stdio.h>
#include<string.h>
int char_swap(char str[])
{
char temp;
int length = strlen(str);
int i;
for(i = 0;i < length/2;i++)
{
temp = str[i];
str[i] = str[length-i-1];
str[length-i-1] = temp;
}
printf("%s\n",str);
return 0;
}
int main()
{
char str[100];
//scanf("%s",str);
gets(str);
char_swap(str);
return 0;
}
主函数中如用scanf("%s",str)不能达到预期效果,
如输入Hello World!则结果为olleH
scanf()扫描到"Hello"后面的空格就认为对str的赋值结束,并忽略后面的"World!"
残留的信息 World!是存在于stdin流中,而不是在键盘缓冲区中
gets(str)则可以达到预期效果。