用C语言实现唐诗输入输出
唐诗的输入和输出利用字符数组实现一首四行唐诗的输入和输出#include stdio.h#include string.hint 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);在输出完所有诗句后再次打印一串空格并换行与前面的格式相呼应使输出结果看起来更整洁。