将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 如:输入“I am a student”,输出“tneduts a ma I”。

输入参数:
inputString:输入的字符串

返回值:
输出转换好的逆序字符串

输入样例:
I am a student

输出样例:

tneduts a ma I

解决方案1:

#include<stdio.h>
int main()
{
    char inputString[101];
    char c;
    int i=0;
    while((c=getchar())!='\n')
    {
        inputString[i]=c;
        i++
    }
    inputSting[i]='\0';
    for(int j=i-1;j>=0;j--)
        printf("%c",inputString[j]);
    return 0;
}

这种方法可以实现字符串的逆序,但是在华为OJ上却通不过,原因是,c定义为char类型,但是getchar()函数的原型是int getchar(void)返回值是int,因此可能会造成数据丢失。

解决方案2

#include<stdio.h>
#include<string.h>
int main()
{
    char inputString[101];
    gets(inputString);
    for(int j=strlen(inputString)-1;j>=0;j--)
        printf("%c",inputString[j]);    
    return 0;
}

这种方法用gets() 函数读取一行,放入inputString中,然后逆序打印,通过了华为OJ。

运行结果:

另外,关于字符串的几种输入方法,参见:
http://blog.sina.com.cn/s/blog_512ff9030100926w.html

http://www.cnblogs.com/tanky_woo/archive/2010/08/31/1813455.html