Форматирование текста по ширине - C (СИ)
Формулировка задачи:
Здравствуйте. Мне нужно отформатировать текст(одну строку) по ширине(вводится с клавиатуры) - т.е. как в Word. strtowords - разбивает строку на слова, а в другой нужно провести непосредственно табулирование. Помогите найти ошибку, пожалуйста.
char **strtowords(char *s,int *c) { int count=0; char **words = new char*[strlen(s)/2+2]; char *p=s; for(char *ps; ps=strchr(p,' ');p=ps+1) if(ps!=p) { words[count]=new char[ps-p+1]; strncpy(words[count],p,ps-p); words[count][ps-p]=0; count++; } if(strlen(p)) { words[count]=new char[strlen(p)+1]; strcpy(words[count],p); count++; } words[count]=0; *c=count; return words; } void tabulate(char **word, int w, int n) { int q=w; char *text=new char[w]; for(int i=0;word[i];i++) { if(strlen(word[i])<q) { strcat(text,word[i]); strcat(text," "); q=q-strlen(word[i])-1; } else { for(char *ps=text;ps=strstr(ps," ");ps+=2) strins(ps," "); q=w; i--; printf("%s\n",text); strdel(text,w); } } }
Решение задачи: «Форматирование текста по ширине»
textual
Листинг программы
'\t'
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д