Текст записан одной длинной строкой. Выровнять текст на экране по правому краю, так что бы в каждой строке было 60 символов и каждая строка заканчивалась знаком препинания или пробелом. Выравнивание осуществить, вставляя дополнительные пробелы между словами (равномерно по всей строке). Есть такой код, но он удаляет все после первого слова
| Код | #include <stdio.h> #include <string.h> #include <windows.h>
void main() { char str[200]; char space[10] = { ' ' }; char smb = { ',' }; char symb = { ' ' }; SetConsoleCP(1251);//включить кодировку Win1251 при вводе с консоли SetConsoleOutputCP(1251);//включить кодировку Win1251 при выводе на консоли printf("Введите текст:\n"); gets_s(str); int i = 0,len,ns=0,ks,j,k; len = strlen(str);//длина строки while (str[i] != '\0') { while (str[i] == ' ')//пока встречается пробел перебираем символы i++; ns = i;//начало слова while ((str[i] != ' ') && (str[i] != '\0'))//пока не встретится пробел или конец строки перебираем символы { i++; ks = i - 1;//конец слова } k = ks + 1; while (len != 60) { strcpy(str + k, space); break; } } printf("Ровный текст:\n"); printf("%d\n", len); puts(str); getchar(); getchar(); }
|
|