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

用C语言实现唐诗输入输出

唐诗的输入和输出

利用字符数组实现一首四行唐诗的输入和输出

#include <stdio.h>
#include <string.h>

int main()
{
char tangshi[4][20];

printf("请输入一首四行唐诗:\n");

for (int i = 0; i < 4; i++)
{
fgets(tangshi[i], 20, stdin);
tangshi[i][strcspn(tangshi[i], "\n")] = '\0';
}

printf("\n输出唐诗:\n");
printf(" \n");

for (int i = 0; i < 4; i++)
{
printf("%s\n", tangshi[i]);
}
printf(" \n");

return 0;
}

程序的核心功能是处理字符串。它通过一个循环,连续四次从用户那里获取输入,并将每一行输入存储在一个二维字符数组中。在获取完所有输入后,再通过另一个循环将这个数组中的内容逐行打印到屏幕上,从而实现了对一首四句诗的完整输入和输出

#include <string.h>:引入字符串处理库。这是为了使用 strcspn 函数来处理字符串中的换行符。

  • char tangshi[4][20];:这是程序的核心数据结构,定义了一个二维字符数组。你可以把它想象成一个有4行20列的表格。
    • [4]:表示这个数组可以存储4个独立的字符串,正好对应一首绝句的四句诗。
    • [20]:表示每个字符串(即每一句诗)最多可以容纳19个字符(最后一个位置留给字符串结束符'\0')。

  • printf("请输入一首四行唐诗:\n");:在屏幕上打印提示信息,指导用户进行操作。
  • for (int i = 0; i < 4; i++):一个for循环,确保接下来的代码块会精确执行4次,i的值从0递增到3。
  • fgets(tangshi[i], 20, stdin);:这是实现安全输入的关键函数。
    • tangshi[i]:指定了输入内容要存放的目标位置,即二维数组的第i行。
    • 20:指定了最多读取的字符数。这能有效防止缓冲区溢出,因为读取的字符数不会超过为tangshi[i]分配的空间大小。
    • stdin:表示输入来源是标准输入,也就是键盘。
  • tangshi[i][strcspn(tangshi[i], "\n")] = '\0';:这行代码用于清理输入
    • fgets函数在读取用户输入时,会把末尾的换行符(当用户按下回车键时产生)也一并读入并存储。
    • strcspn(tangshi[i], "\n")函数会查找字符串tangshi[i]中换行符'\n'第一次出现的位置(索引)。
    • tangshi[i][...] = '\0';则将找到的换行符替换为字符串的结束符'\0'。这样做的目的是为了在后续输出时,能够更干净、更可控地格式化诗句,避免多余的换行。

  • printf("\n输出唐诗:\n");:打印一个标题,告知用户接下来是输出部分。
  • printf(" \n");:打印一串空格后换行,纯粹为了美化输出格式,起到视觉上的分隔作用。
  • for (int i = 0; i < 4; i++):另一个for循环,同样执行4次,用于遍历并打印存储的四句诗。
  • printf("%s\n", tangshi[i]);:这是实际的打印语句。
    • %s:是字符串的占位符。
    • tangshi[i]:是要打印的字符串,即第i句诗。
    • \n:在打印完每一句诗后,手动添加一个换行符,确保下一句诗从新的一行开始打印。
  • printf(" \n");:在输出完所有诗句后,再次打印一串空格并换行,与前面的格式相呼应,使输出结果看起来更整洁。
http://www.jsqmd.com/news/567100/

相关文章:

  • 轻断食期间吃什么代餐不掉肌肉?2026年五款低脂减脂代餐产品实测与选购建议 - 企业推荐官【官方】
  • 软件测试员避坑指南:从‘不可复现的Bug’上报到‘风险测试’实战
  • Topologically Advanced Ultrahigh-Q Guided Reson...
  • 通义千问3-VL-Reranker-8B效果惊艳:文化符号(如‘龙’‘灯笼’)跨模态语义理解
  • Qwen3-TTS伦理指南:负责任使用语音克隆技术
  • 开源语音识别模型选型:SenseVoice-Small ONNX vs Paraformer轻量版对比
  • 面试录音复盘:SQL 去重被追问到卡壳,distinct / group by / row_number 到底差在哪?
  • 揭秘Cuvil官方未文档化的--enable-unsafe-fp16标志:实测提速33%但引发梯度爆炸的隐藏代价
  • 钧略AIGEO:以专业AI搜索优化 打造企业智能获客新引擎 - 企业推荐官【官方】
  • 如何高效配置Windows安卓子系统:完整的专业开发指南
  • Kong Manager 实战指南:从安装到配置全流程解析
  • 时间序列形态识别:chan.py框架在工业传感器数据分析中的应用指南
  • 保姆级教程:手把手教你用Vue 3 + TypeScript封装一个媲美Element UI的Slider滑块组件
  • 铁路安全新利器:TWDS系统如何用CCD技术实时检测轮对故障?
  • ROCmLibs-for-gfx1103:解锁AMD 780M APU 2-3倍AI性能的终极优化方案
  • 记录一次 反射引起的Metaspace OOM 的完整排查
  • 终极AMD Ryzen调试指南:使用SMUDebugTool轻松优化你的处理器性能
  • MIKE URBAN前处理之ArcGIS批量拆分属性表中的字段
  • StructBERT零样本分类-中文-base行业落地:医院在线问诊首句意图识别(挂号/复诊/报告查询)
  • “因果森林+双重稳健估计”强强组合,这篇文章代表着2026年医学因果推断方法学趋势
  • 感应电机有/无传感器控制FOC带文档 感应电机有/无速度传感器FOC控制,异步电机有/无速度传...
  • 告别手动填表!用CANoe 11.0 (x64)模板快速创建DBC数据库(附Signal/Message避坑指南)
  • 基于博途1200PLC与HMI的十层三部电梯控制系统仿真程序
  • SDMatte在数字政务中的应用:证件照/公章/红头文件透明底标准化处理
  • 又一体脂肪指数类指标上线NHANES公共数据库平台---锥度指数
  • 从模糊到逼真:VAE-GAN如何用‘学来的相似度’解决VAE的图像模糊问题?
  • HPKM-PINN:KAN-MLP并行混合物理信息神经网络技术 第1章 KAN基础与MLP局限的理论分析(一)
  • Hunyuan-MT-7B多场景应用:Pixel Language Portal赋能高校外语教学平台的AI助教落地案例
  • 反逻辑陷阱:写机器无法理解的荒诞代码
  • IF=22.3!三臂临床试验的统计方法拆解:八段锦降压研究的顶刊设计思路借鉴