#include <stdio.h>
int main()
{
printf("请输入要倒序的内容\n");
char s = scanf("%c");
char a[65536] = {'\0'};
a[65536] = s;
char *t = &a[0];
int len = 0;
while (*t != '\0')
{
printf("第%d个字符:%c\n",len,*t);
len++;
t++;
}
printf("共计%d个字符\n", len);
for (int i=len;i>0;i--)
{
printf("%c",*t);
t--;
}
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
printf("请输入要倒序的内容\n");
char s[250];
gets(s);
char a[65536] = {'\0'};
int len = strlen(s),j;
for (j=0; j<len; j++)
{
printf("第%d个字符:%c\n",j+1,s[j]);
}
printf("共计%d个字符\n", len);
for (int i=len-1; i>=0; i--)
{
printf("%c",s[i]);
}
return 0;
}
你的问题是获取字符串的方式错误了,要用%s而不是%c ,修改了一下,如下:
#include <stdio.h>
int main()
{
printf("请输入要倒序的内容\n");
char s [65536];
scanf("%s",s); //获取一个字符串放入数组s中
char *t = &s[0]; //用一个字符指针指向这个字符串开头
int len = 0;
while (*t != '\0')
{
printf("第%d个字符:%c\n",len,*t);
len++;
t++;
}
printf("共计%d个字符\n", len);
for (int i=len-1;i>=0;i--) //逆序打印
{
printf("%c",s[i]);
}
return 0;
}