【C】字符串逆序
将一个字符串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