C语言实现字符串处理:按行输出并分割
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;
}
代码说明:
- 使用
scanf()函数读入整数N。 - 使用
fgets()函数逐行读入字符串,并将前N行字符串原样输出。 - 循环读入余下的字符串,并将回车符替换为字符串结束符。
- 判断字符串是否为空,如果为空则跳过。
- 按要求输出字符串,并在每输出10个字符串后输出一个空行。
- 最后判断最后一行是否输出满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语言中的基本输入输出函数和字符串操作函数。代码结构清晰,注释详细,易于理解和维护。程序逻辑简单易懂,适用于初学者学习和实践。
扩展:
该程序可以扩展为更复杂的字符串处理程序,例如可以对字符串进行排序、查找、替换等操作。
原文地址: https://www.cveoy.top/t/topic/oIMJ 著作权归作者所有。请勿转载和采集!