Trying word length counting
This commit is contained in:
28
charray.c
Normal file
28
charray.c
Normal file
@@ -0,0 +1,28 @@
|
||||
#include <stdio.h>
|
||||
|
||||
main () {
|
||||
int c, i, nwhite, nother;
|
||||
int ndigit[10];
|
||||
|
||||
nwhite = nother = 0;
|
||||
for (i=0; i<10; i++)
|
||||
ndigit[i]=0;
|
||||
|
||||
while ((c = getchar()) != EOF);
|
||||
{
|
||||
if (c >= '0' && c <='9')
|
||||
++ndigit[c-0]; /* Subtract the first element of the array, show only difference*/
|
||||
else if (c == ' ' || c == '\n' || c == '\t')
|
||||
{
|
||||
++nwhite;
|
||||
}
|
||||
else
|
||||
{
|
||||
++nother;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
BIN
wordhistogram
Executable file
BIN
wordhistogram
Executable file
Binary file not shown.
37
wordhistogram.c
Normal file
37
wordhistogram.c
Normal file
@@ -0,0 +1,37 @@
|
||||
#include <stdio.h>
|
||||
#define IN 1
|
||||
#define OUT 0
|
||||
|
||||
|
||||
main () {
|
||||
/*initialize the counting variables and array*/
|
||||
int c, wl, state, i;
|
||||
int wlarr[10];
|
||||
/* zero out the array */
|
||||
for (i=0; i<10; i++)
|
||||
wlarr[i]=0;
|
||||
/*take input*/
|
||||
/*for (i=0; i<10; i++)
|
||||
printf("On array element %d\n", i);*/
|
||||
while ((c = getchar()) != EOF)
|
||||
{
|
||||
/*printf("state is %d\n", state);*/
|
||||
if (state == OUT)
|
||||
{
|
||||
wlarr[i]=wl;
|
||||
wl=0;
|
||||
putchar('\n');
|
||||
/*if you were out and a new char comes in, you're back in a word*/
|
||||
state = IN;
|
||||
}
|
||||
if (state == IN);
|
||||
putchar(c);
|
||||
++wl;
|
||||
if (c == ' ' || c =='\n' || c =='\t')
|
||||
/*if there's a blank, newline or tab, you're out of a word*/
|
||||
state = OUT;
|
||||
printf("Word length is %d\n", wl);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user