C语言字符逆序

写在前面:这里是小王成长日志,一名在校大学生,想在学习之余将自己的学习笔记分享出来,记录自己的成长轨迹,帮助可能需要的人。欢迎关注与留言。

题目:

题目链接:https://www.dotcpp.com/oj/problem1093.html

题目 1093: 字符逆序

时间限制: 1Sec 内存限制: 64MB 提交: 14369 解决: 7346

题目描述
将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。
输入
输入包括一行。 第一行输入的字符串。
输出
输出转换好的逆序字符串。
样例输入
I am student
样例输出
tneduts a ma I

C语言解法

#include <stdio.h>
int main()
{
   char a[100], c;
   int i = 0;//这里i即是作为索引存储读取的ch的值,也是在记录输入的字符的个数
   while ((c = getchar()) != EOF && c != '\n')//EOF是文字流的结尾(定义的一个常量),一般值为-1,题目中的结束也可能是换行 因为题目说了是一行字符串
   {
      a[i] = c;
      i++;//i自加
   }
   //这边只要从i-1开始是因为在最后一次有效输入后i仍然进行了一次自加
   for (int k = i-1; k >= 0; k--)
      printf("%c", a[k]);
   return 0;
}

EOF详解

EOF 是定义的一个常量 一般值为-1
一些数据读取函数(如 fgetc 与 getc 函数)而言,如果读到文件末尾(也可以理解为“如果不能从文件中读取”,即文件已经读完或者文件读取出错),则返回一个整数(-1),这就是所谓的 EOF。因此,EOF 宏不但能够表示读文件到了结尾这一状态(这种状态可以用 feof() 来检测),还能表示 I/O 操作中的读、写错误(通常可以用 ferror() 来检测)以及其他一些关联操作的错误状态。


都看到这里了,各位哥哥姐姐叔叔阿姨给小王点个赞 关个注 留个言吧,和小王一起成长吧,你们的关注是对我最大的支持。
有事没事进来看看吧 : 小王的博客目录索引
C语言专栏看这 : C语言学习专栏


如果以上内容有任何不准确或遗漏之处,或者你有更好的意见,就在下面留个言让我知道吧-我会尽我所能来回答。

猜你喜欢

转载自blog.csdn.net/weixin_45761327/article/details/106632370