/**Solution to exercise 5.6, p. 198, "C by Dissection"
*
* Counts the number of characters as they are written. When the count is N or more
* write any white space as newline and change the count to zero.
*
*
* 07. March, Lone Leth Thomsen
**/
#include <stdio.h>
#include <ctype.h>
#define N 30 /* defines the width */
int found_next_char(void);
int main(void)
{
int c;
int char_count = 0;
while ((c = getchar()) != EOF) { /* checks that the character is not EOF */
++char_count; /* increases counter */
if (char_count < N){ /* checks width is less than N */
if (c != '\n') /* checks the character is not newline */
putchar(c); /* writes character */
else
putchar(' '); /* writes space if the character was newline */
}
else {
if (!isspace(c)) /* if width reached check that the character is not a space */
putchar(c);
else {
putchar('\n'); /* if space found, add newline and reset count to zero */
char_count = 0;
}
}
}
return 0;
}
![]() | #define N 30 /* defines the width */ |
defines the width |
![]() | while ((c = getchar()) != EOF) { /* checks that the character is not EOF */
|
checks that the character is not EOF |
![]() | ++char_count; /* increases counter */ |
increases counter |
![]() | if (char_count < N){ /* checks width is less than N */
|
checks width is less than N |
![]() | if (c != '\n') /* checks the character is not newline */ |
checks the character is not newline |
![]() | putchar(c); /* writes character */ |
writes character |
![]() | putchar(' '); /* writes space if the character was newline */
|
writes space if the character was newline |
![]() | if (!isspace(c)) /* if width reached check that the character is not a space */ |
if width reached check that the character is not a space |
![]() | putchar('\n'); /* if space found, add newline and reset count to zero */
|
if space found, add newline and reset count to zero |