输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。
输入格式:
输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
输出格式:
在一行中输出逆序后的字符串。
输入样例:
Hello World!
输出样例:
!dlroW olleH
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
//下列差几分
#include <stdio.h>
#include <string.h>
int main()
{
char arr[81];
char ch;
int i=0;
/*'\0’一般放在字符串的结束处,用来表示字符串的结束,其是ascii值为0的字符的转义。
如果一个字符串中没有’\0’这个结束字符,那么这些函数将不能确定字符串的结束位置在哪儿,
从而引起一些不必要的错误。 */
ch=getchar();
for(i=0;ch!='\n';i++)
{
arr[i]=ch;
ch=getchar();
}
//加上arr[i]=’\0’;
//或者改成
//Gets(arr);
int left=0;
int right =strlen(arr)-1;
while(left<right)
{
char tmp=arr[left];
arr[left]=arr[right];
arr[right]=tmp;
left++;
right--;
}
printf("%s\n",arr);
//大部分做法
#include <stdio.h>
#include <string.h>
int main()
{
int i=0;
char ch[81];
gets(ch);//整串
int len=strlen(ch);
for (i = len-1; i >= 0; i--)
{
printf("%c", ch[i]); // 逆序输出字符
}
函数做法
void reverse(char arr[])
{
int left = 0;
int right = strlen(arr) - 1;//字符串长度-1
while (left < right)
{
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
}
int main()
{
char arr[81];
gets(arr);
reverse(arr);
printf("%s\n", arr);
return 0;
}
return 0;
}