当前位置: 首页 > article >正文

【C语言】倒序输出

相信你是最棒哒!!!

文章目录

输入描述

正确代码


输入描述

 输入包括一行。 第一行输入的字符串(含空格)。

输出描述

输出转换好的逆序字符串。

样例输入
I am a student!
样例输出
!tneduts a ma I

正确代码

注释版

#include <stdio.h> 

int main() 
{
    char a[111]; // 定义一个字符数组a,大小为111,用于存储输入的字符串
    int i; // 定义一个整型变量i,用于循环计数

    gets(a); // 使用gets函数读取一行输入,包括空格,直到遇到换行符。注意:gets函数是不安全的,因为它不检查数组溢出,实际编程中应避免使用

    int n = strlen(a); // 使用strlen函数计算字符串a的长度,并将其存储在变量n中

    for(i = n - 1; i >= 0; i--) // 使用for循环从字符串的最后一个字符开始向前遍历
        printf("%c", a[i]); // 打印当前字符a[i],由于是从后向前遍历,因此会按相反顺序打印字符串

    printf("\n"); // 打印一个换行符,表示输出结束

    return 0; // 返回0,表示程序正常结束
}

简洁版

#include <stdio.h>
int main() 
{
	char a[111];
	int i;
	gets(a);
	int n=strlen(a);
	for(i=n-1;i>=0;i--)
		printf("%c",a[i]);				
	printf("\n");
	return 0;
}

在这段代码中,for循环从n - 1开始而不是n的原因是:

  1. 字符串的结束符:在C语言中,字符串以空字符('\0')作为结束标志。strlen函数计算字符串长度时,会一直计数直到遇到这个空字符。因此,strlen(a)返回的n实际上是指字符串a的长度,不包括结尾的空字符。

  2. 数组的索引:在C语言中,数组的索引是从0开始的。所以,如果n是字符串的长度,那么字符串的最后一个字符的索引实际上是n - 1。数组a的最后一个元素是a[n - 1]

  3. 循环的目的:这个for循环的目的是反向打印字符串。如果从n开始,那么a[n]实际上是越界访问,因为n对应的是字符串末尾空字符的位置,而数组中并没有a[n]这个元素。

综上所述,循环从n - 1开始,是因为n - 1是字符串最后一个字符的索引,这样可以确保循环能够正确地访问字符串中的每个字符,从最后一个字符开始向前遍历,直到索引0,即字符串的第一个字符。

 


http://www.kler.cn/a/448259.html

相关文章:

  • Apache Samza开源的分布式流处理框架
  • 代码随想录D24-25 回溯算法03-04 Python
  • 【Java基础面试题016】JavaObject类中有什么主要方法,作用是什么?
  • c++--------c++概念
  • SYD881X RTC定时器事件在调用timeAppClockSet后会出现比较大的延迟
  • java 基于冷热数据分离的思想设计LRU链表
  • uniapp input的触发事件
  • robots协议
  • 使用Python和OpenCV进行双目摄像头测距的详细教程及源代码
  • Hive SQL 查询所有函数
  • setTimeout 最小执行时间是多少
  • java.util.ConcurrentModificationException异常出现的原因及解决方法
  • 【python实现烟花】
  • 解锁 SSM 与 Vue 在新锐台球厅管理系统设计与实现中的融合密码
  • 【大语言模型】ACL2024论文-29 答案即所需:通过回答问题实现指令跟随的文本嵌入
  • 【多维DP】【准NOI难度】力扣3251. 单调数组对的数目 II
  • 爬虫代码中如何处理异常?
  • 【面试 - 遇到的问题】Vue 里 router-view 使用 key + 关闭页面后重新打开页面-获取的数据赋值到旧组件问题(钩子执行顺序)
  • oracle使用imp命令导入dmp文件
  • 方正畅享全媒体新闻采编系统 reportCenter.do Sql注入漏洞复现(附脚本)
  • Dalsa线阵CCD相机使用开发手册
  • EasyPoi 使用$fe:模板语法生成Word动态行
  • sass的用法
  • 36. Three.js案例-创建带光照和阴影的球体与平面
  • 四、使用langchain搭建RAG:金融问答机器人--构建web应用,问答链,带记忆功能
  • 常用类晨考day15