Solved

tolower done manually

Posted on 1999-01-20
8
255 Views
Last Modified: 2010-04-02
I know that ctype.h has a tolower function.

If I wanted to write one manually...how is it done?

Thanks!
0
Comment
Question by:Tom Knowlton
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
8 Comments
 
LVL 10

Accepted Solution

by:
viktornet earned 20 total points
ID: 1184652
char ToLower(char ch)
{
  if (ch >= 65 && ch <= 90)
    return (ch+32);
}

char c = 'K';

cout << ToLower(c);

Hope this helps...

-Viktor
--Ivanov
0
 
LVL 22

Expert Comment

by:nietod
ID: 1184653
Why use ASCII numeric values?  how about

char ToLower(char ch)
   {
     if (ch >= 'A' && ch <= 'Z')
       return (ch+'a'-'A');
   }
0
 
LVL 10

Expert Comment

by:viktornet
ID: 1184654
same thing :))

ch + 32 is gonna be executed faster than ch + 'a' - 'A' :))
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 22

Expert Comment

by:nietod
ID: 1184655
Personally, I have no faith in optimizers, but even the worst optimizer had better catch that.
0
 
LVL 10

Expert Comment

by:viktornet
ID: 1184656
with today's pentium II, there will not be much difference between the two..
0
 
LVL 84

Expert Comment

by:ozo
ID: 1184657
both make an assumption about your locale
'A' is more obvious than 65 (and makes fewer assumtions about your character set)
0
 
LVL 5

Author Comment

by:Tom Knowlton
ID: 1184658
Viktornet:

Your answer sounded good to me.  Haven't actually tried it yet, but I'm sure it works.

Thanks,

Tom
0
 

Expert Comment

by:casaprog
ID: 1184659
This reminds me of the assembly days, when I used a bit operation to convert to lower or upper case.
These macro should do the work

#define ToUpper(ch) (((ch) >= 'a' && (ch) <= 'z') ? ((ch) & ~0x20) : (ch))
#define ToLower(ch) (((ch) >= 'A' && (ch) <= 'Z') ? ((ch) | 0x20) : (ch))

Regards,

Wenderson
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Errors will happen. It is a fact of life for the programmer. How and when errors are detected have a great impact on quality and cost of a product. It is better to detect errors at compile time, when possible and practical. Errors that make their wa…
IntroductionThis article is the second in a three part article series on the Visual Studio 2008 Debugger.  It provides tips in setting and using breakpoints. If not familiar with this debugger, you can find a basic introduction in the EE article loc…
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question