C語言程序設(shè)計(jì)第2版中第一章?練習(xí)題1-22
10年積累的成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有開州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。編寫一個(gè)程序,把較長的輸入行“折”成短一些的2行或多行,折行的位置在輸入行的第n列之前的最后一個(gè)非空格之后。要保證書程序能夠智能地處理輸入行很長以及在指定的列前沒有空格或制表符的情況。
廢話少說,上代碼。
//獲取輸入行
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;
}
//測(cè)試函數(shù)
void c1_22() {
char buf[20][MAXCHAR];//二維數(shù)組用于保存最終結(jié)果
char tmp[20][MAXCHAR];//臨時(shí)存儲(chǔ)多個(gè)輸入行
char line[MAXCHAR];存儲(chǔ)單個(gè)輸入行
int len, bufindex = 0;
while ((len = getline(line, MAXCHAR)) >0) {
strcpy_s(tmp[bufindex], strlen(line) + 1, line);
bufindex++;
}
len = copy_to_mline(buf, tmp, bufindex);
for (int i = 0; i< len; i++) {
printf("%s\n", buf[i]);
}
}
運(yùn)行結(jié)果
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧