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!!!!!!!!!!!!!
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 [COLOR=Red]#include <string.h>[/COLOR] void count(char array[]); int main(){ char line[100]; printf("Hey user enter some lines : "); [COLOR=Red]gets(line);[/COLOR] count(line); getchar(); return(0); } /* FUNCTION count */ void count(char array[]){ [COLOR=Red]int z=strlen(array); [/COLOR] printf("%d\n",z); }
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); [B]gets(line);[/B] 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); }
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.