Home > front end >  C text formatter characters count is off
C text formatter characters count is off

Time:05-12

So I have an assignment to format text according to rules and eventually print out the number of characters in the string (including \n and spaces, anything but the \0 at the end of the string).

Basically, a valid input is ended with a dot but I think I have a few more whitespaces after the final dots. I have tried several approaches such as loop that replaces spaces with \0 starting from the end of the string. nothing seems to work though...

EDIT The requirements are:

  1. to convert double-dots(..) to a new line
  2. delete multiple spaces leaving only one,
  3. making sure that there isn't a space prior to a comma or a dot
  4. making sure that there is single space after a comma or dot.
  5. not changing the original content between apostrophes.
  6. and validating that there are Capital letters only in the correct places (new line\paragraph).

we are required to do all of the code in the main function (unfortunately) and me code usually mistake the characters count by 1-2 extra in the count (probably do to extra spaces after the last dot

this is an example of input that my code fails at counting characters

the LANGUAGE  "C" is a procedural              programming language     .It was initially developed by "Dennis Ritchie"..            the Main feAtures of "C" language include low-level access to memory, simple set of keywords, and clean style                .
int main() {
    char ans;

    printf("*************** Welcome to the text cleaner ***************\n\n");

    do
    {
        int length, i, j = 0;
        int word, sentence, para, space;
        char tin[601], tout[601], * dex, * pos;
        printf("\nPlease enter text:\n");
        gets_s(tin, 600);
        length = strlen(tin);

        dex = strchr(tin, '.'); //converts double dots to new line
        while (dex != NULL)
        {
            if (tin[dex - tin   1] == '.') {
                tin[dex - tin   1] = '\n';
            }
            dex = strchr(dex   1, '.');
        }
        length = strlen(tin);


        dex = strchr(tin, ' '); //converting multiple spaces to single space
        while (dex != NULL)
        {
            while (dex != NULL && tin[dex - tin   1] == ' ')
            {
                for (i = dex - tin   1; i < strlen(tin); i  )
                {
                    tin[i - 1] = tin[i];
                }
                dex = strchr(dex, ' ');
                j  ;
            }
            dex = strchr(dex   1, ' ');
        }

        tin[length - j] = '\0';
        j = 0;

        dex = strchr(tin, '\n');

        while (dex != NULL && tin[dex-tin 1] == ' ') //delets spaces in the beggining of new row
        {
            for (i = dex - tin   1;i < strlen(tin);i  ) {
                tin[i] = tin[i   1];
            }
            dex = strchr(dex   1, '\n');
        }

        dex = strchr(tin, ','); //deletes space before comma
        while (dex != NULL && tin[dex - tin - 1] == ' ')
        {
            for (i = dex - tin - 1; i < strlen(tin); i  )
            {
                tin[i] = tin[i 1];
            }
            dex = strchr(dex 1, ',');
        }

        dex = strchr(tin, '.'); //deletes space before dots
        while (dex != NULL && tin[dex - tin - 1] == ' ')
        {
            for (i = dex - tin - 1; i < strlen(tin); i  )
            {
                tin[i] = tin[i 1];
            }
            dex = strchr(dex   1, '.');
        }



        dex = strchr(tin, ','); // adds space after comma
        while (dex != NULL && tin[dex - tin   1] != ' ')    
        {
            if (tin[dex - tin   1] != '\n')
            {
                tin[strlen(tin)   1] = '\0';
                for (i = strlen(tin); i > dex - tin; i--)
                {
                    if (i == dex - tin   1)
                    {
                        tin[i] = ' ';
                    }
                    else
                    {
                        tin[i] = tin[i - 1];
                    }
                }
                dex = strchr(dex   1, ',');
            }
        }

        dex = strchr(tin, '.'); // adds space after dot

        while (dex != NULL && tin[dex - tin   1] != ' ')
        {
                tin[strlen(tin)   1] = '\0';
                if (tin[dex - tin   1] == '\n')
                {
                    dex = strchr(dex   1, '.');
                }
                else
                {
                    for (i = strlen(tin); i > dex - tin; i--)
                    {
                        if (i == dex - tin   1)
                        {
                            tin[i] = ' ';
                        }
                        else
                        {
                            tin[i] = tin[i - 1];
                        }
                    }
                    dex = strchr(dex   1, '.');
                }           
        }

        strcpy_s(tout, sizeof(tout), tin);
        _strlwr_s(tout,sizeof(tout)); //copies and lowercasing the input string

        dex = strchr(tin, '"');
        
        if (dex != NULL) {
            pos = strchr(dex   1, '"');

            while (dex != NULL)
            {
                for (i = dex - tin; i < pos - tin; i  ) {
                    tout[i] = tin[i];
                }
                dex = strchr(pos   1, '"');
                if (dex)
                {
                    pos = strchr(dex   1, '"');
                }
            }  //making sure that the letters in the quotes have't been lowercased
        }
        
        _strupr_s(tin, sizeof(tin));

        dex = strchr(tout, '.');
        pos = strchr(tin, '.');
        while (dex != NULL && pos != NULL)
        {
                tout[dex - tout   2] = tin[pos - tin   2];
                dex = strchr(dex   1, '.');     
                pos = strchr(pos   1, '.');
        }   
        //CAPSLOCK

        dex = strchr(tout, '.'); //deletes space before dots
        while (dex != NULL)
        {
            if (tout[dex - tout - 1] == ' ')
            {
                for (i = dex - tout - 1; i < strlen(tout); i  )
                {
                    tout[i] = tout[i 1];
                }
            }
            
            dex = strchr(dex   1, '.');
        }

        if (tout[0] == ' ') {
            for (i = 0 ;i < strlen(tout); i  ) {
                tout[i] = tout[i   1];
            }
        }//handeling single space in the beggining of the string

        if (tout[0] >= 'a' && tout[0] <= 'z') {
            tout[0] -= 32;
        } //First letter always capital


        word = 0;
        sentence = 0;
        para = 1;
        space = 0;
        length = strlen(tout);

        for (i = 0; tout[i] != '\0';i  )
        {
            if (tout[i] == ' ' && tout[i   1] != ' ')
                word  ;
        }



        dex = strchr(tout, '.');
        while (dex != NULL)
        {
            sentence  ;
            dex = strchr(dex   1, '.');
        }

        dex = strchr(tout, '\n');
        while (dex != NULL)
        {
            space  ;
            para  ;
            word  ;
            dex = strchr(dex   1, '\n');
        } 

        //dex = strchr(tout, '-');
        //while (dex != NULL)
        //{
        //  word  ;
        //  dex = strchr(dex   1, '-');
        //}

        printf_s("\nText after cleaning:\n------------------------------------------------------------------------------------------------\n");
        printf_s("%s\n\n", tout);
        printf_s("characters: %d | words: %d | sentences: %d | paragraphs: %d\n------------------------------------------------------------------------------------------------\n",length, word, sentence, para);
        printf_s("\nIf you want to clean another string press (y): ");
        scanf_s(" %c", &ans, 1);
        if (ans == 'y')
        {
            gets_s(tin, 600);

        }
    } while (ans =='y');

CodePudding user response:

Here is a possible solution.

Hopefully this will show that you don't need all of the repetition.

I've only tested it with the example given, there might well still be edge cases where it might break. You might want to allocate the buffer rather than using a specific value, but you might need to check to see if there are inputs that might lead to expansion.

Regarding capitals in the right places, there is no scope in the original for anything other than a single line, so no concept of paragraphs. Therefore I've gone for caps at the start of sentences.

NB: OP didn't specify what the correct output was, given that the post is titled "wrong character count" so this is a best guess based on the requirements.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

char original[] = "the LANGUAGE  \"C\" is a procedural              programming language     .It was initially developed by \"Dennis Ritchie\"..            the Main feAtures of \"C\" language include low-level access to memory, simple set of keywords, and clean style                .";

int main() {
    
    char buffer[256];
    strcpy(buffer, original);
    char *src, *dest;
    
    bool quoted = false;
    bool sentance = true;
    bool period = false;
    bool space = false;
    
    src = dest = buffer;

    for ( ; *src ; src  ) {
        
        if (quoted) {

            switch (*src) {
                
            case '"': 
                quoted = !quoted;
            }
            
            *dest   = *src;

        } else {
            
            switch (*src) {
                
            case '"':
                quoted = !quoted;
                break;
                
            case ' ':
                space = true;
                continue;

            case '.':
                period = true;
                sentance = true;
                continue;
            }
            
            if (period) {
                *dest   = '.';
                period = false;
            }

            if (space) {
                *dest   = ' ';
                space = false;
            }
            
            *dest   = sentance ? toupper(*src) : tolower(*src);

            sentance = false;
        }

    }
    
    if (period) {
        *dest   = '.';
        period = false;
    }
    
    *dest = '\0';

    printf("\nChar Count=%d \"%s\"\n", (int)strlen(original), original);
    printf("\nChar Count=%d \"%s\"\n", (int)strlen(buffer), buffer);
        
    return 0;
}

CodePudding user response:

As I mentioned in the top comments, this can be done in a single loop with state variables.

A few assumptions:

  1. Whenever we see .. (which is converted to a newline), it starts a new paragraph
  2. What you called "apostrophe", I'm calling a double quote (as that's the only thing that made sense).
  3. Within quotes nothing is converted
  4. Quotes [themselves] are copied over (i.e. not stripped)

Unfortunately, I had to completely refactor the code. It is annotated. I realize you have to only use main. The extra functions are merely for debug, so they "don't count":

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int opt_d;                          // debug
int opt_quo;                        // preserve quote

#if DEBUG
#define dbgprt(_fmt...) \
    do { \
        if (opt_d) \
            printf(_fmt); \
    } while (0)
#else
#define dbgprt(_fmt...)         do { } while (0)
#endif

#define COPYX(_chr) \
    do { \
        *dst   = _chr; \
        dbgprt("COPY %2.2X/%s\n",_chr,showchr(_chr)); \
    } while (0)

#define COPY \
    COPYX(chr)

#define WHITEOUT \
    do { \
        if (! white) \
            break; \
        COPYX(' '); \
        white = 0; \
        ctr_word  = 1; \
    } while (0)

const char *
showchr(int chr)
{
    static char buf[10];

    if ((chr >= 0x20) && (chr <= 0x7E))
        sprintf(buf,"%c",chr);
    else
        sprintf(buf,"{%2.2X}",chr);

    return buf;
}

void
showbuf(const char *buf,const char *who)
{
    const char *sep = "'";

    printf("%s: %s",who,sep);

    for (int chr = *buf  ;  chr != 0;  chr = *buf  )
        printf("%s",showchr(chr));

    printf("%s\n",sep);
}

int
main(int argc,char **argv)
{
    char inp[1000];
    char buf[1000];
    char *src;
    char *dst;

    --argc;
      argv;

    for (;  argc > 0;  --argc,   argv) {
        char *cp = *argv;
        if (*cp != '-')
            break;

        cp  = 2;
        switch (cp[-1]) {
        case 'd':
            opt_d = ! opt_d;
            break;
        case 'q':
            opt_quo = ! opt_quo;
            break;
        }
    }

    opt_quo = ! opt_quo;

    const char *file;
    if (argc > 0)
        file = *argv;
    else
        file = "inp.txt";

    FILE *xfsrc = fopen(file,"r");
    if (xfsrc == NULL) {
        perror(file);
        exit(1);
    }

    while (fgets(inp,sizeof(inp),xfsrc) != NULL) {
        strcpy(buf,inp);

        src = buf;
        dst = buf;

        int quo = 0;
        int white = 0;
        int dot = 1;
        int ctr_sent = 0;
        int ctr_word = 0;
        int ctr_para = 1;

        for (int chr = *src  ;  chr != 0;  chr = *src  ) {
            dbgprt("LOOP %2.2X/%s quo=%d white=%d dot=%d word=%d sent=%d para=%d\n",
                chr,showchr(chr),quo,white,dot,
                ctr_word,ctr_sent,ctr_para);

            // got a quote
            if (chr == '"') {
                if (! quo)
                    WHITEOUT;
                if (opt_quo)
                    COPY;
                quo = ! quo;
                continue;
            }

            // non-quote
            else {
                if (quo) {
                    COPY;
                    continue;
                }
            }

            // got a dot
            if (chr == '.') {
                dot = 1;

                // double dot --> newline (new paragraph)
                if (*src == '.') {
                    COPYX('\n');
                      src;
                    ctr_para  = 1;
                    continue;
                }

                COPY;

                white = 1;
                continue;
            }

            // from fgets, this can _only_ occur at the end of the buffer
            if (chr == '\n') {
                dot = 1;
                white = 1;
                COPY;
                break;
            }

            // accumulate/skip over whitespace
            if (chr == ' ') {
                white = 1;
                continue;
            }

            // output accumulated whitespace
            WHITEOUT;

            // got uppercase -- convert to lowercase if we're not at the start
            // of a sentence
            if (isupper(chr)) {
                if (! dot)
                    chr = tolower(chr);
            }

            // got lowercase -- capitalize if we're just starting a sentence
            else {
                if (islower(chr)) {
                    if (dot)
                        chr = toupper(chr);
                }
            }

            COPY;

            // count sentences
            if (dot)
                ctr_sent  = 1;

            dot = 0;
        }

        *dst = 0;

        showbuf(inp,"inp");
        showbuf(buf,"buf");

#if 0
        if (dot)
            ctr_word  = 1;
#endif

        printf("TOTAL: length=%zu sentences=%d paragraphs=%d words=%d\n",
            strlen(buf),ctr_sent,ctr_para,ctr_word);
    }

    fclose(xfsrc);

    return 0;
}

Here is the program output:

inp: 'the LANGUAGE  "C" is a procedural              programming language     .It was initially developed by "Dennis Ritchie"..            the Main feAtures of "C" language include low-level access to memory, simple set of keywords, and clean style                .{0A}'
buf: 'The language "C" is a procedural programming language. It was initially developed by "Dennis Ritchie"{0A} The main features of "C" language include low-level access to memory, simple set of keywords, and clean style.{0A}'
TOTAL: length=214 sentences=3 paragraphs=2 words=31

Output with -d:

LOOP 74/t quo=0 white=0 dot=1 word=0 sent=0 para=1
COPY 54/T
LOOP 68/h quo=0 white=0 dot=0 word=0 sent=1 para=1
COPY 68/h
LOOP 65/e quo=0 white=0 dot=0 word=0 sent=1 para=1
COPY 65/e
LOOP 20/  quo=0 white=0 dot=0 word=0 sent=1 para=1
LOOP 4C/L quo=0 white=1 dot=0 word=0 sent=1 para=1
COPY 20/
COPY 6C/l
LOOP 41/A quo=0 white=0 dot=0 word=1 sent=1 para=1
COPY 61/a
LOOP 4E/N quo=0 white=0 dot=0 word=1 sent=1 para=1
COPY 6E/n
LOOP 47/G quo=0 white=0 dot=0 word=1 sent=1 para=1
COPY 67/g
LOOP 55/U quo=0 white=0 dot=0 word=1 sent=1 para=1
COPY 75/u
LOOP 41/A quo=0 white=0 dot=0 word=1 sent=1 para=1
COPY 61/a
LOOP 47/G quo=0 white=0 dot=0 word=1 sent=1 para=1
COPY 67/g
LOOP 45/E quo=0 white=0 dot=0 word=1 sent=1 para=1
COPY 65/e
LOOP 20/  quo=0 white=0 dot=0 word=1 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=1 sent=1 para=1
LOOP 22/" quo=0 white=1 dot=0 word=1 sent=1 para=1
COPY 20/
COPY 22/"
LOOP 43/C quo=1 white=0 dot=0 word=2 sent=1 para=1
COPY 43/C
LOOP 22/" quo=1 white=0 dot=0 word=2 sent=1 para=1
COPY 22/"
LOOP 20/  quo=0 white=0 dot=0 word=2 sent=1 para=1
LOOP 69/i quo=0 white=1 dot=0 word=2 sent=1 para=1
COPY 20/
COPY 69/i
LOOP 73/s quo=0 white=0 dot=0 word=3 sent=1 para=1
COPY 73/s
LOOP 20/  quo=0 white=0 dot=0 word=3 sent=1 para=1
LOOP 61/a quo=0 white=1 dot=0 word=3 sent=1 para=1
COPY 20/
COPY 61/a
LOOP 20/  quo=0 white=0 dot=0 word=4 sent=1 para=1
LOOP 70/p quo=0 white=1 dot=0 word=4 sent=1 para=1
COPY 20/
COPY 70/p
LOOP 72/r quo=0 white=0 dot=0 word=5 sent=1 para=1
COPY 72/r
LOOP 6F/o quo=0 white=0 dot=0 word=5 sent=1 para=1
COPY 6F/o
LOOP 63/c quo=0 white=0 dot=0 word=5 sent=1 para=1
COPY 63/c
LOOP 65/e quo=0 white=0 dot=0 word=5 sent=1 para=1
COPY 65/e
LOOP 64/d quo=0 white=0 dot=0 word=5 sent=1 para=1
COPY 64/d
LOOP 75/u quo=0 white=0 dot=0 word=5 sent=1 para=1
COPY 75/u
LOOP 72/r quo=0 white=0 dot=0 word=5 sent=1 para=1
COPY 72/r
LOOP 61/a quo=0 white=0 dot=0 word=5 sent=1 para=1
COPY 61/a
LOOP 6C/l quo=0 white=0 dot=0 word=5 sent=1 para=1
COPY 6C/l
LOOP 20/  quo=0 white=0 dot=0 word=5 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=5 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=5 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=5 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=5 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=5 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=5 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=5 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=5 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=5 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=5 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=5 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=5 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=5 sent=1 para=1
LOOP 70/p quo=0 white=1 dot=0 word=5 sent=1 para=1
COPY 20/
COPY 70/p
LOOP 72/r quo=0 white=0 dot=0 word=6 sent=1 para=1
COPY 72/r
LOOP 6F/o quo=0 white=0 dot=0 word=6 sent=1 para=1
COPY 6F/o
LOOP 67/g quo=0 white=0 dot=0 word=6 sent=1 para=1
COPY 67/g
LOOP 72/r quo=0 white=0 dot=0 word=6 sent=1 para=1
COPY 72/r
LOOP 61/a quo=0 white=0 dot=0 word=6 sent=1 para=1
COPY 61/a
LOOP 6D/m quo=0 white=0 dot=0 word=6 sent=1 para=1
COPY 6D/m
LOOP 6D/m quo=0 white=0 dot=0 word=6 sent=1 para=1
COPY 6D/m
LOOP 69/i quo=0 white=0 dot=0 word=6 sent=1 para=1
COPY 69/i
LOOP 6E/n quo=0 white=0 dot=0 word=6 sent=1 para=1
COPY 6E/n
LOOP 67/g quo=0 white=0 dot=0 word=6 sent=1 para=1
COPY 67/g
LOOP 20/  quo=0 white=0 dot=0 word=6 sent=1 para=1
LOOP 6C/l quo=0 white=1 dot=0 word=6 sent=1 para=1
COPY 20/
COPY 6C/l
LOOP 61/a quo=0 white=0 dot=0 word=7 sent=1 para=1
COPY 61/a
LOOP 6E/n quo=0 white=0 dot=0 word=7 sent=1 para=1
COPY 6E/n
LOOP 67/g quo=0 white=0 dot=0 word=7 sent=1 para=1
COPY 67/g
LOOP 75/u quo=0 white=0 dot=0 word=7 sent=1 para=1
COPY 75/u
LOOP 61/a quo=0 white=0 dot=0 word=7 sent=1 para=1
COPY 61/a
LOOP 67/g quo=0 white=0 dot=0 word=7 sent=1 para=1
COPY 67/g
LOOP 65/e quo=0 white=0 dot=0 word=7 sent=1 para=1
COPY 65/e
LOOP 20/  quo=0 white=0 dot=0 word=7 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=7 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=7 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=7 sent=1 para=1
LOOP 20/  quo=0 white=1 dot=0 word=7 sent=1 para=1
LOOP 2E/. quo=0 white=1 dot=0 word=7 sent=1 para=1
COPY 2E/.
LOOP 49/I quo=0 white=1 dot=1 word=7 sent=1 para=1
COPY 20/
COPY 49/I
LOOP 74/t quo=0 white=0 dot=0 word=8 sent=2 para=1
COPY 74/t
LOOP 20/  quo=0 white=0 dot=0 word=8 sent=2 para=1
LOOP 77/w quo=0 white=1 dot=0 word=8 sent=2 para=1
COPY 20/
COPY 77/w
LOOP 61/a quo=0 white=0 dot=0 word=9 sent=2 para=1
COPY 61/a
LOOP 73/s quo=0 white=0 dot=0 word=9 sent=2 para=1
COPY 73/s
LOOP 20/  quo=0 white=0 dot=0 word=9 sent=2 para=1
LOOP 69/i quo=0 white=1 dot=0 word=9 sent=2 para=1
COPY 20/
COPY 69/i
LOOP 6E/n quo=0 white=0 dot=0 word=10 sent=2 para=1
COPY 6E/n
LOOP 69/i quo=0 white=0 dot=0 word=10 sent=2 para=1
COPY 69/i
LOOP 74/t quo=0 white=0 dot=0 word=10 sent=2 para=1
COPY 74/t
LOOP 69/i quo=0 white=0 dot=0 word=10 sent=2 para=1
COPY 69/i
LOOP 61/a quo=0 white=0 dot=0 word=10 sent=2 para=1
COPY 61/a
LOOP 6C/l quo=0 white=0 dot=0 word=10 sent=2 para=1
COPY 6C/l
LOOP 6C/l quo=0 white=0 dot=0 word=10 sent=2 para=1
COPY 6C/l
LOOP 79/y quo=0 white=0 dot=0 word=10 sent=2 para=1
COPY 79/y
LOOP 20/  quo=0 white=0 dot=0 word=10 sent=2 para=1
LOOP 64/d quo=0 white=1 dot=0 word=10 sent=2 para=1
COPY 20/
COPY 64/d
LOOP 65/e quo=0 white=0 dot=0 word=11 sent=2 para=1
COPY 65/e
LOOP 76/v quo=0 white=0 dot=0 word=11 sent=2 para=1
COPY 76/v
LOOP 65/e quo=0 white=0 dot=0 word=11 sent=2 para=1
COPY 65/e
LOOP 6C/l quo=0 white=0 dot=0 word=11 sent=2 para=1
COPY 6C/l
LOOP 6F/o quo=0 white=0 dot=0 word=11 sent=2 para=1
COPY 6F/o
LOOP 70/p quo=0 white=0 dot=0 word=11 sent=2 para=1
COPY 70/p
LOOP 65/e quo=0 white=0 dot=0 word=11 sent=2 para=1
COPY 65/e
LOOP 64/d quo=0 white=0 dot=0 word=11 sent=2 para=1
COPY 64/d
LOOP 20/  quo=0 white=0 dot=0 word=11 sent=2 para=1
LOOP 62/b quo=0 white=1 dot=0 word=11 sent=2 para=1
COPY 20/
COPY 62/b
LOOP 79/y quo=0 white=0 dot=0 word=12 sent=2 para=1
COPY 79/y
LOOP 20/  quo=0 white=0 dot=0 word=12 sent=2 para=1
LOOP 22/" quo=0 white=1 dot=0 word=12 sent=2 para=1
COPY 20/
COPY 22/"
LOOP 44/D quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 44/D
LOOP 65/e quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 65/e
LOOP 6E/n quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 6E/n
LOOP 6E/n quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 6E/n
LOOP 69/i quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 69/i
LOOP 73/s quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 73/s
LOOP 20/  quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 20/
LOOP 52/R quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 52/R
LOOP 69/i quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 69/i
LOOP 74/t quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 74/t
LOOP 63/c quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 63/c
LOOP 68/h quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 68/h
LOOP 69/i quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 69/i
LOOP 65/e quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 65/e
LOOP 22/" quo=1 white=0 dot=0 word=13 sent=2 para=1
COPY 22/"
LOOP 2E/. quo=0 white=0 dot=0 word=13 sent=2 para=1
COPY 0A/{0A}
LOOP 20/  quo=0 white=0 dot=1 word=13 sent=2 para=2
LOOP 20/  quo=0 white=1 dot=1 word=13 sent=2 para=2
LOOP 20/  quo=0 white=1 dot=1 word=13 sent=2 para=2
LOOP 20/  quo=0 white=1 dot=1 word=13 sent=2 para=2
LOOP 20/  quo=0 white=1 dot=1 word=13 sent=2 para=2
LOOP 20/  quo=0 white=1 dot=1 word=13 sent=2 para=2
LOOP 20/  quo=0 white=1 dot=1 word=13 sent=2 para=2
LOOP 20/  quo=0 white=1 dot=1 word=13 sent=2 para=2
LOOP 20/  quo=0 white=1 dot=1 word=13 sent=2 para=2
LOOP 20/  quo=0 white=1 dot=1 word=13 sent=2 para=2
LOOP 20/  quo=0 white=1 dot=1 word=13 sent=2 para=2
LOOP 20/  quo=0 white=1 dot=1 word=13 sent=2 para=2
LOOP 74/t quo=0 white=1 dot=1 word=13 sent=2 para=2
COPY 20/
COPY 54/T
LOOP 68/h quo=0 white=0 dot=0 word=14 sent=3 para=2
COPY 68/h
LOOP 65/e quo=0 white=0 dot=0 word=14 sent=3 para=2
COPY 65/e
LOOP 20/  quo=0 white=0 dot=0 word=14 sent=3 para=2
LOOP 4D/M quo=0 white=1 dot=0 word=14 sent=3 para=2
COPY 20/
COPY 6D/m
LOOP 61/a quo=0 white=0 dot=0 word=15 sent=3 para=2
COPY 61/a
LOOP 69/i quo=0 white=0 dot=0 word=15 sent=3 para=2
COPY 69/i
LOOP 6E/n quo=0 white=0 dot=0 word=15 sent=3 para=2
COPY 6E/n
LOOP 20/  quo=0 white=0 dot=0 word=15 sent=3 para=2
LOOP 66/f quo=0 white=1 dot=0 word=15 sent=3 para=2
COPY 20/
COPY 66/f
LOOP 65/e quo=0 white=0 dot=0 word=16 sent=3 para=2
COPY 65/e
LOOP 41/A quo=0 white=0 dot=0 word=16 sent=3 para=2
COPY 61/a
LOOP 74/t quo=0 white=0 dot=0 word=16 sent=3 para=2
COPY 74/t
LOOP 75/u quo=0 white=0 dot=0 word=16 sent=3 para=2
COPY 75/u
LOOP 72/r quo=0 white=0 dot=0 word=16 sent=3 para=2
COPY 72/r
LOOP 65/e quo=0 white=0 dot=0 word=16 sent=3 para=2
COPY 65/e
LOOP 73/s quo=0 white=0 dot=0 word=16 sent=3 para=2
COPY 73/s
LOOP 20/  quo=0 white=0 dot=0 word=16 sent=3 para=2
LOOP 6F/o quo=0 white=1 dot=0 word=16 sent=3 para=2
COPY 20/
COPY 6F/o
LOOP 66/f quo=0 white=0 dot=0 word=17 sent=3 para=2
COPY 66/f
LOOP 20/  quo=0 white=0 dot=0 word=17 sent=3 para=2
LOOP 22/" quo=0 white=1 dot=0 word=17 sent=3 para=2
COPY 20/
COPY 22/"
LOOP 43/C quo=1 white=0 dot=0 word=18 sent=3 para=2
COPY 43/C
LOOP 22/" quo=1 white=0 dot=0 word=18 sent=3 para=2
COPY 22/"
LOOP 20/  quo=0 white=0 dot=0 word=18 sent=3 para=2
LOOP 6C/l quo=0 white=1 dot=0 word=18 sent=3 para=2
COPY 20/
COPY 6C/l
LOOP 61/a quo=0 white=0 dot=0 word=19 sent=3 para=2
COPY 61/a
LOOP 6E/n quo=0 white=0 dot=0 word=19 sent=3 para=2
COPY 6E/n
LOOP 67/g quo=0 white=0 dot=0 word=19 sent=3 para=2
COPY 67/g
LOOP 75/u quo=0 white=0 dot=0 word=19 sent=3 para=2
COPY 75/u
LOOP 61/a quo=0 white=0 dot=0 word=19 sent=3 para=2
COPY 61/a
LOOP 67/g quo=0 white=0 dot=0 word=19 sent=3 para=2
COPY 67/g
LOOP 65/e quo=0 white=0 dot=0 word=19 sent=3 para=2
COPY 65/e
LOOP 20/  quo=0 white=0 dot=0 word=19 sent=3 para=2
LOOP 69/i quo=0 white=1 dot=0 word=19 sent=3 para=2
COPY 20/
COPY 69/i
LOOP 6E/n quo=0 white=0 dot=0 word=20 sent=3 para=2
COPY 6E/n
LOOP 63/c quo=0 white=0 dot=0 word=20 sent=3 para=2
COPY 63/c
LOOP 6C/l quo=0 white=0 dot=0 word=20 sent=3 para=2
COPY 6C/l
LOOP 75/u quo=0 white=0 dot=0 word=20 sent=3 para=2
COPY 75/u
LOOP 64/d quo=0 white=0 dot=0 word=20 sent=3 para=2
COPY 64/d
LOOP 65/e quo=0 white=0 dot=0 word=20 sent=3 para=2
COPY 65/e
LOOP 20/  quo=0 white=0 dot=0 word=20 sent=3 para=2
LOOP 6C/l quo=0 white=1 dot=0 word=20 sent=3 para=2
COPY 20/
COPY 6C/l
LOOP 6F/o quo=0 white=0 dot=0 word=21 sent=3 para=2
COPY 6F/o
LOOP 77/w quo=0 white=0 dot=0 word=21 sent=3 para=2
COPY 77/w
LOOP 2D/- quo=0 white=0 dot=0 word=21 sent=3 para=2
COPY 2D/-
LOOP 6C/l quo=0 white=0 dot=0 word=21 sent=3 para=2
COPY 6C/l
LOOP 65/e quo=0 white=0 dot=0 word=21 sent=3 para=2
COPY 65/e
LOOP 76/v quo=0 white=0 dot=0 word=21 sent=3 para=2
COPY 76/v
LOOP 65/e quo=0 white=0 dot=0 word=21 sent=3 para=2
COPY 65/e
LOOP 6C/l quo=0 white=0 dot=0 word=21 sent=3 para=2
COPY 6C/l
LOOP 20/  quo=0 white=0 dot=0 word=21 sent=3 para=2
LOOP 61/a quo=0 white=1 dot=0 word=21 sent=3 para=2
COPY 20/
COPY 61/a
LOOP 63/c quo=0 white=0 dot=0 word=22 sent=3 para=2
COPY 63/c
LOOP 63/c quo=0 white=0 dot=0 word=22 sent=3 para=2
COPY 63/c
LOOP 65/e quo=0 white=0 dot=0 word=22 sent=3 para=2
COPY 65/e
LOOP 73/s quo=0 white=0 dot=0 word=22 sent=3 para=2
COPY 73/s
LOOP 73/s quo=0 white=0 dot=0 word=22 sent=3 para=2
COPY 73/s
LOOP 20/  quo=0 white=0 dot=0 word=22 sent=3 para=2
LOOP 74/t quo=0 white=1 dot=0 word=22 sent=3 para=2
COPY 20/
COPY 74/t
LOOP 6F/o quo=0 white=0 dot=0 word=23 sent=3 para=2
COPY 6F/o
LOOP 20/  quo=0 white=0 dot=0 word=23 sent=3 para=2
LOOP 6D/m quo=0 white=1 dot=0 word=23 sent=3 para=2
COPY 20/
COPY 6D/m
LOOP 65/e quo=0 white=0 dot=0 word=24 sent=3 para=2
COPY 65/e
LOOP 6D/m quo=0 white=0 dot=0 word=24 sent=3 para=2
COPY 6D/m
LOOP 6F/o quo=0 white=0 dot=0 word=24 sent=3 para=2
COPY 6F/o
LOOP 72/r quo=0 white=0 dot=0 word=24 sent=3 para=2
COPY 72/r
LOOP 79/y quo=0 white=0 dot=0 word=24 sent=3 para=2
COPY 79/y
LOOP 2C/, quo=0 white=0 dot=0 word=24 sent=3 para=2
COPY 2C/,
LOOP 20/  quo=0 white=0 dot=0 word=24 sent=3 para=2
LOOP 73/s quo=0 white=1 dot=0 word=24 sent=3 para=2
COPY 20/
COPY 73/s
LOOP 69/i quo=0 white=0 dot=0 word=25 sent=3 para=2
COPY 69/i
LOOP 6D/m quo=0 white=0 dot=0 word=25 sent=3 para=2
COPY 6D/m
LOOP 70/p quo=0 white=0 dot=0 word=25 sent=3 para=2
COPY 70/p
LOOP 6C/l quo=0 white=0 dot=0 word=25 sent=3 para=2
COPY 6C/l
LOOP 65/e quo=0 white=0 dot=0 word=25 sent=3 para=2
COPY 65/e
LOOP 20/  quo=0 white=0 dot=0 word=25 sent=3 para=2
LOOP 73/s quo=0 white=1 dot=0 word=25 sent=3 para=2
COPY 20/
COPY 73/s
LOOP 65/e quo=0 white=0 dot=0 word=26 sent=3 para=2
COPY 65/e
LOOP 74/t quo=0 white=0 dot=0 word=26 sent=3 para=2
COPY 74/t
LOOP 20/  quo=0 white=0 dot=0 word=26 sent=3 para=2
LOOP 6F/o quo=0 white=1 dot=0 word=26 sent=3 para=2
COPY 20/
COPY 6F/o
LOOP 66/f quo=0 white=0 dot=0 word=27 sent=3 para=2
COPY 66/f
LOOP 20/  quo=0 white=0 dot=0 word=27 sent=3 para=2
LOOP 6B/k quo=0 white=1 dot=0 word=27 sent=3 para=2
COPY 20/
COPY 6B/k
LOOP 65/e quo=0 white=0 dot=0 word=28 sent=3 para=2
COPY 65/e
LOOP 79/y quo=0 white=0 dot=0 word=28 sent=3 para=2
COPY 79/y
LOOP 77/w quo=0 white=0 dot=0 word=28 sent=3 para=2
COPY 77/w
LOOP 6F/o quo=0 white=0 dot=0 word=28 sent=3 para=2
COPY 6F/o
LOOP 72/r quo=0 white=0 dot=0 word=28 sent=3 para=2
COPY 72/r
LOOP 64/d quo=0 white=0 dot=0 word=28 sent=3 para=2
COPY 64/d
LOOP 73/s quo=0 white=0 dot=0 word=28 sent=3 para=2
COPY 73/s
LOOP 2C/, quo=0 white=0 dot=0 word=28 sent=3 para=2
COPY 2C/,
LOOP 20/  quo=0 white=0 dot=0 word=28 sent=3 para=2
LOOP 61/a quo=0 white=1 dot=0 word=28 sent=3 para=2
COPY 20/
COPY 61/a
LOOP 6E/n quo=0 white=0 dot=0 word=29 sent=3 para=2
COPY 6E/n
LOOP 64/d quo=0 white=0 dot=0 word=29 sent=3 para=2
COPY 64/d
LOOP 20/  quo=0 white=0 dot=0 word=29 sent=3 para=2
LOOP 63/c quo=0 white=1 dot=0 word=29 sent=3 para=2
COPY 20/
COPY 63/c
LOOP 6C/l quo=0 white=0 dot=0 word=30 sent=3 para=2
COPY 6C/l
LOOP 65/e quo=0 white=0 dot=0 word=30 sent=3 para=2
COPY 65/e
LOOP 61/a quo=0 white=0 dot=0 word=30 sent=3 para=2
COPY 61/a
LOOP 6E/n quo=0 white=0 dot=0 word=30 sent=3 para=2
COPY 6E/n
LOOP 20/  quo=0 white=0 dot=0 word=30 sent=3 para=2
LOOP 73/s quo=0 white=1 dot=0 word=30 sent=3 para=2
COPY 20/
COPY 73/s
LOOP 74/t quo=0 white=0 dot=0 word=31 sent=3 para=2
COPY 74/t
LOOP 79/y quo=0 white=0 dot=0 word=31 sent=3 para=2
COPY 79/y
LOOP 6C/l quo=0 white=0 dot=0 word=31 sent=3 para=2
COPY 6C/l
LOOP 65/e quo=0 white=0 dot=0 word=31 sent=3 para=2
COPY 65/e
LOOP 20/  quo=0 white=0 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 20/  quo=0 white=1 dot=0 word=31 sent=3 para=2
LOOP 2E/. quo=0 white=1 dot=0 word=31 sent=3 para=2
COPY 2E/.
LOOP 0A/{0A} quo=0 white=1 dot=1 word=31 sent=3 para=2
COPY 0A/{0A}
inp: 'the LANGUAGE  "C" is a procedural              programming language     .It was initially developed by "Dennis Ritchie"..            the Main feAtures of "C" language include low-level access to memory, simple set of keywords, and clean style                .{0A}'
buf: 'The language "C" is a procedural programming language. It was initially developed by "Dennis Ritchie"{0A} The main features of "C" language include low-level access to memory, simple set of keywords, and clean style.{0A}'
TOTAL: length=214 sentences=3 paragraphs=2 words=31
  • Related