help wid a programme

lionaneesh's Avatar, Join Date: Mar 2010
Invasive contributor
Code:
#include<stdio.h>
#define LEGAL 1 

void count(char array[]);

int main()
{

    char line[100];


    printf("Hey user enter some lines : ");
    scanf("%s",line);

    count(line);
    return(0);
}
/* FUNCTION count */

void count(char array[])
{    
    char c;
    int x,z=0;
        /* Wat to do to count \n and \t and blanks */
            for(x = 0 ;(c = array[x]) != '\0' ; x++)
            {        
                z++;
            }            
    printf("%d\n",z);
}
HElp me wid this function count..

wat i m trying to make is tat :-

this function will count the characters used and tell me in decimal format.

the main reason for making this function is that it will help in malloc();
function to allocate exact memory....

plzzzzzz help.................

and wen i am putting a space the loop terminates...
and shows only first charcters eg:-

if written:-

aneesh hi

output:-

6 characters...

help!!!!!!!!!!!!!
0
virxen's Avatar, Join Date: Nov 2009
Pro contributor
scanf is not suitable for this task
it stops when it sees a space or enter

use gets or fgets

for the count problem there is a command--->strlen

Code:
#include<stdio.h>
#define LEGAL 1 
#include <string.h>

void count(char array[]);

int main(){
    char line[100];
    printf("Hey user enter some lines : ");
    gets(line);
    count(line);
    getchar();
    return(0);
}
/* FUNCTION count */

void count(char array[]){ 
    int z=strlen(array);        
    printf("%d\n",z);
}
0
raju00003's Avatar, Join Date: Dec 2009
Newbie Member
Code:
#include<stdio.h>
#define LEGAL 1 

void count(char array[]);

int main()
{

   //char line[100];

  char* line = new char;

    printf("Hey user enter some lines : ");
   //scanf("%s",line);

   gets(line);

    count(line);
    return(0);
}
/* FUNCTION count */

void count(char array[])
{    
    char c;
    int x,z=0;
        /* Wat to do to count \n and \t and blanks */
            for(x = 0 ;(c = array[x]) != '\0' ; x++)
            {        
                z++;
            }            
    printf("%d\n",z);
}

Last edited by shabbir; 24Mar2010 at 16:52.. Reason: Code blocks
0
xpi0t0s's Avatar, Join Date: Aug 2004
Mentor
fgets is better than gets because it specifies a maximum count and won't overflow the buffer. Use stdin for the file pointer. If the string ends with \n then that is all the user entered; if not, there is more and another call to fgets will pick up the next lot of characters.