练习 1-22 编写一个程序,把较长的输入行“折”成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个非空格之后。
2023-09-14 09:06:57 时间
C语言程序设计(第二版) 练习1-22 个人设计
练习 1-22 编写一个程序,把较长的输入行“折”成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个非空格之后。要保证程序能够智能地处理输入行很长以及在制定的列前没有空格或制表符时的情况。
代码块:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void fold(char s[]); //定义折行函数
int main()
{
char string[100]; //定义一个足够大的数组
printf("Please enter string: "); //输入字符串
gets(string);
fold(string); //调用折行函数
puts(string); //输出折行后的字符串
system("pause");
return 0;
}
/*折行函数*/
void fold(char s[])
{
int i, j, len, word_count; //定义变量,长度,字符计数
len=strlen(s); //判断字符串长度,并在末尾添加终止符
s[len]='\0';
for (i=0, word_count=0; s[i]!='\0'; i++){
word_count++;
if (word_count==20){ //当字符计数满足20个条件时
if (s[i]==' '||s[i]=='\t'){ //此三行代码表示当前字符为空格或制表符时,替换为换行符
s[i]='\n';
word_count=0;
}
/*以下条件内的代码:当前字符不满足为空格或制表符时,向后查找直到发现空格或制表符,然后替换为换行符,
同时如果向后查找的过程中如果遇到终止符,直接跳出循环,否则执行替换为换行符。*/
else{
for (j=i; s[j]!=' '&&s[j]!='\t'&&s[j]!='\0'; j++);
if (s[j]!='\0'){
s[j]='\n';
i=j;
word_count=0;
}
else
break;
}
}
}
}
相关文章
- Go HTTP 编程 | 03 - 表单的输入与验证
- VBA实用小程序:将Excel中的内容输入到Word
- VBA实用小程序:将Excel中的内容输入到PowerPoint
- ora-01830错误:日期格式图片在转换整个输入字符串之前结束详解数据库
- Linux文件描述符0:标准输入的必不可少的钥匙(linux文件描述符0)
- Linux输入技术:实现更简洁的操作(linuxinput)
- 计算机实验室之树莓派:课程 11 输入02
- 突破边界imp实现oracle数据的导入(imp输入oracle)
- 31省份新增本土确诊47例 江苏26例:云南新增本土确诊1例 境外输入9例
- Asp.net之TextBox只允许输入数字的方法总结
- C语言实现输入一颗二元查找树并将该树转换为它的镜像