因此,這裏是我的簡單的C代碼:由另一個人將值分配給計數器,防止計數器增加?
#include<stdio.h>
#include<conio.h>
#include<string.h>
int i, j, k;
void main(){
int limit=10;
char txt[]="This text would be cut, according to limit";
clrscr();
for(i; i<strlen(txt); i++){
if(txt[i] == 32) k=i;
if(i!=0 && i%limit == 0){
if(txt[i] != 32) i=k;// This is what bugs the program
while(j<i) printf("%c",txt[j++]);
printf("\n");
}
}
getch();
}
什麼我的程序做:
- 它通過增量
- 計數變量達到一定的極限。如果當前字符是一個空格(ASCII 32 ),索引
i
被複制到k
- 如果索引達到限制,它將啓動以下操作:
- 如果最後一個字符不是通過
k
- 它設置回
i
最後空間的指數空間這將打印的所有字符從j
使用到i
最後一個索引,它的方式是僅達最後一個空間 - 這將創建一個新的行
- 如果最後一個字符不是通過
- 最後,它會繼續從它循環的最後一個索引
i
必須循環後增加
通過調試模式下,我發現,在打印第一線之後,i
保持在由k
設置的值,並創建一個無限循環...... 我真的不能明白爲什麼...
對於剛剛那些誰是問的什麼輸出我想到的是,例如,我有串
"This text would be cut, according to limit"
這將限制爲每輸入10個字符,但最後一個字符不是空格,它只會在第一行打印未翻譯的單詞,然後繼續這樣做NTIL串端部,這樣做的目的,是節省時間,而不是手動計數串然後在每個限制
示例輸出添加\n
:
This text
would be
cut,
according
to limit
你想通過改變循環內的循環計數器來實現什麼? – devnull
請不要使用ASCII值作爲魔術常量。 C有''''來表示一個空格。 –
你期望輸出什麼? –