c - How does this code counting the number of characters, lines, and words work? -
while (fgets(line, max_line_len-1, infile) != null) { num_lines += 1; num_chars += strlen(line); if (strncmp(line, "", max_line_len) != 0) { num_words++; } } the whole program counts number of words. chunk of code increases line number of text , count words, don't know what's going on here. how work?
strlen( line ) give number of characters in line. (check man strlen.)
num_chars += strlen( line ) add number num_chars.
strncmp( line, "", max_line_len ) compare contents of line empty string (but on safe side, not read more max_line_len characters of line, in case not null-terminated). return 0 if equal. (for further details, refer man strncmp.)
if (strncmp(line, "", max_line_len) != 0) { num_words++; } add 1 num_words if line not equal empty string.
note num_words misnomer, there no word counting going on here, counting of non-empty lines.
Comments
Post a Comment