Isalpha Function Issue

This is a discussion on Isalpha Function Issue within the C++ Programming forums, part of the General Programming Boards category; In the below code, I am attempting to count the number of letters and number of words in a phrase. ...

  1. #1
    Registered User
    Join Date
    Nov 2010
    Posts
    27

    Isalpha Function Issue

    In the below code, I am attempting to count the number of letters and number of words in a phrase. In researching the return values of isalpha(), I noted that when a letter is present the first character isalpha() output is 1. But the second character isalpha() output is 2? The phrase that was input into this example was the following: How do you organize? Can someone help me with why I am not getting uniform output for the "H" character and the "o" character?

    Code:
    #include <stdio.h>
    #include <ctype.h>
    
    int main(void)
    	{
    	int ch;
    	float avg = 0;
    	int spaces = 0;
    	int letters = 0;
    	int test = 0;
    	int ltrcnt = 0;
    	int spccnt = 0;		
    	while((ch = getchar()) != '\n')
    		{
    		test = isalpha(ch);
    		if(isalpha(ch) == 2)
    			{
    			ltrcnt++;
    			}
    		if(isspace(ch) == 8)
    			{
    			spccnt++;
    			}
    		}
    	printf("The Number Of Words Are %d , The Number Of Letters Are %d ",(spccnt+1),ltrcnt);
    	
    	}
    Attached Images Attached Images   

  2. #2
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    21,941
    Quote Originally Posted by mcertini
    In researching the return values of isalpha(), I noted that when a letter is present the first character isalpha() output is 1. But the second character isalpha() output is 2? The phrase that was input into this example was the following: How do you organize? Can someone help me with why I am not getting uniform output for the "H" character and the "o" character?
    The return value of isalpha is either zero (false) or non-zero (true).

    If you want to differentiate between uppercase and lowercase letters, use isupper and islower respectively.
    C + C++ Compiler: MinGW port of GCC
    Version Control System: Bazaar

    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  3. #3
    Registered User
    Join Date
    Nov 2010
    Posts
    27

    Answer

    laserlight,

    Thank you for your reply. As you state and what I have learned from another poster:

    isalpha returns zero if the given character is not an alphabet.
    Returns non-zero if it is alphabet.
    And may return '1' if the alphabet is of upper case, and '2' if it is lower case.

  4. #4
    Registered User
    Join Date
    Jun 2005
    Posts
    6,440
    "another poster" has misinformed you.

    There is no guarantee about what non-zero value is returned if a character is alphabetic. There is certainly no requirement to return a different result based on upper or lower case.

    Some libraries might do that, but others will not.
    Right 98% of the time, and don't care about the other 3%.

  5. #5
    C++まいる!Cをこわせ! Elysia's Avatar
    Join Date
    Oct 2007
    Posts
    22,791
    I should inquire as to whether you intend to use C or C++? What you have shown so far is C code.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Compiling C in Visual Studio 2005
    By emanresu in forum C Programming
    Replies: 3
    Last Post: 11-16-2009, 03:25 AM
  2. Function issue
    By Learner87 in forum C++ Programming
    Replies: 1
    Last Post: 04-09-2008, 01:31 PM
  3. Screwy Linker Error - VC2005
    By Tonto in forum C++ Programming
    Replies: 5
    Last Post: 06-19-2007, 02:39 PM
  4. Game Pointer Trouble?
    By Drahcir in forum C Programming
    Replies: 8
    Last Post: 02-04-2006, 01:53 AM
  5. <Gulp>
    By kryptkat in forum Windows Programming
    Replies: 7
    Last Post: 01-14-2006, 12:03 PM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21