Форматирование текста по ширине - 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'

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.286 из 5
Похожие ответы