C语言程序设计第2版中第一章 练习题1-22
编写一个程序,把较长的输入行“折”成短一些的2行或多行,折行的位置在输入行的第n列之前的最后一个非空格之后。要保证书程序能够智能地处理输入行很长以及在指定的列前没有空格或制表符的情况。
废话少说,上代码。
//获取输入行
int getline(char s[], int lim)
{
int c, i;
for (i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
s[i] = c;
if (c == '\n') {
s[i] = c;
++i;
s[i] = '\0';
}
return i;
}
//折行
int copy_to_mline(char buf[][MAXCHAR],char mline[][MAXCHAR],int index) {
int k=0, m=0;
for (int i = 0; i < index; i++) {
int len = strlen(mline[i]);
for (int j = 0; j < len; j++) {
buf[k][m] = mline[i][j];
m++;
if (m > 9 &&((j % 9) < 9) && mline[i][j] == ' ') {
buf[k][m] = '\0';
k++;
m = 0;
}
}
buf[k][m] = '\0';
k++;
m = 0;
}
buf[k][m] = '\0';
return k;