C语言实现字符串处理:按行输出并分割

题目描述:

第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N), 每一行字符串可能含有空格,字符数不超过1000。

输出:

先将输入中的前N行字符串(可能含有空格)原样输出,再将余下的字符串(不含有空格)以空格或回车分割依次按行输出。每行输出之间输出一个空行。

代码示例:

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

int main()
{
    int n, i, count = 0;
    char str[1001];

    scanf('%d', &n);

    for (i = 0; i < n; i++) {
        fgets(str, 1001, stdin); // 读入一行字符串
        printf('%s', str); // 原样输出
    }

    while (fgets(str, 1001, stdin)) { // 读入余下的字符串
        if (str[strlen(str)-1] == '\n') { // 如果读入的字符串包含回车符
            str[strlen(str)-1] = '\0'; // 将回车符替换为字符串结束符
        }
        if (str[0] != '\0') { // 如果读入的字符串不为空
            printf('%s', str); // 输出字符串
            count++; // 计数器加1
            if (count % 10 == 0) { // 每输出10个字符串,输出一个空行
                printf('\n');
            } else {
                printf(' '); // 否则输出一个空格
            }
        }
    }
    if (count % 10 != 0) { // 如果最后一行没有输出满10个字符串
        printf('\n'); // 输出一个空行
    }

    return 0;
}

代码说明:

  1. 使用scanf()函数读入整数N。
  2. 使用fgets()函数逐行读入字符串,并将前N行字符串原样输出。
  3. 循环读入余下的字符串,并将回车符替换为字符串结束符。
  4. 判断字符串是否为空,如果为空则跳过。
  5. 按要求输出字符串,并在每输出10个字符串后输出一个空行。
  6. 最后判断最后一行是否输出满10个字符串,如果没有则输出一个空行。

程序运行示例:

输入:

3
This is a test.
Hello world!
This is another line.
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
Line 11

输出:

This is a test.
Hello world!
This is another line.
Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10 Line 11

代码分析:

该程序使用了C语言中的基本输入输出函数和字符串操作函数。代码结构清晰,注释详细,易于理解和维护。程序逻辑简单易懂,适用于初学者学习和实践。

扩展:

该程序可以扩展为更复杂的字符串处理程序,例如可以对字符串进行排序、查找、替换等操作。

C语言实现字符串处理:按行输出并分割

原文地址: https://www.cveoy.top/t/topic/oIMJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录