编写程序,要求用户输入一个字符串,程序将字符串字母反序输出。即如果输入为abcd,则输出为dcba。

因为还没学到字符串处理函数。不用字符串处理函数怎么做。指出问题所在。谢谢
#include<stdio.h>
int main()
{
int a=0;
char sz[100];
printf("请输入一个字符串");
scanf("%s",sz);
for(a=0;sz[a]!=32;a++)
for(a;a>=0;a--)
printf("%c",sz[a]);
return 0;
}
for(a=0;sz[a]!=32;a++) //这里我本来想!=\0,但编译错误

不想先求长度的话,就递归的输出吧
#include<stdio.h>
void reverse_output( char * sz)
{
if (sz[0] != '\0' && sz[0] != '\r' && sz[0] != '\n')
{
reverse_output(sz + 1);
printf("%c", sz[0]);
}
}
int main()
{
int a=0;
char sz[100];
printf("请输入一个字符串");
scanf("%s",sz);
reverse_output(sz);
return 0;
}
先求长度的话在for(a=0;sz[a]!=32;a++)后面加个分号,否则成二重循环了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-21
不那么麻烦 ..
输入的时候a[1] a[2] a[3] .. a[n]
打印的时候
for(int i =n;i>=0;i--)
pritnf ...
即可
相似回答