Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > C++ - To UpperCase?

Reply
Thread Tools

C++ - To UpperCase?

 
 
GRoll21
Guest
Posts: n/a
 
      10-18-2005
I know there is a function but I cannot seem to find it. There should
be a way to uppercase a char right?

Here is what I got.

cout << "Enter title of a book for look up: ";
cin >> firstString;

if (strcmp(toupper(firstString), toupper(bookTitle[index])) == 0)

then i check the book they enter to a book in my bookTitle array. How
can I make it so it puts both firstString and bookTitle to uppercase?
Any help would be great! Thanks!

 
Reply With Quote
 
 
 
 
Victor Bazarov
Guest
Posts: n/a
 
      10-18-2005
GRoll21 wrote:
> I know there is a function but I cannot seem to find it. There should
> be a way to uppercase a char right?


'toupper' should do it. But you don't need to uppercase a char, do you?
You need to uppercase a whole array of them, probably...

> Here is what I got.
>
> cout << "Enter title of a book for look up: ";
> cin >> firstString;
>
> if (strcmp(toupper(firstString), toupper(bookTitle[index])) == 0)


What's a 'firstString'?

> then i check the book they enter to a book in my bookTitle array. How
> can I make it so it puts both firstString and bookTitle to uppercase?


So, it's an array, eh? Then you need to iterate through the array and
apply 'toupper' to every element. It's that simple.

V
 
Reply With Quote
 
 
 
 
GRoll21
Guest
Posts: n/a
 
      10-18-2005
firstString is the book the user inputs.

cout << "Enter title of a book for look up: ";
cin >> firstString;

 
Reply With Quote
 
jois.de.vivre@gmail.com
Guest
Posts: n/a
 
      10-18-2005
GRoll21 wrote:
> I know there is a function but I cannot seem to find it. There should
> be a way to uppercase a char right?
>
> Here is what I got.
>
> cout << "Enter title of a book for look up: ";
> cin >> firstString;
>
> if (strcmp(toupper(firstString), toupper(bookTitle[index])) == 0)
>
> then i check the book they enter to a book in my bookTitle array. How
> can I make it so it puts both firstString and bookTitle to uppercase?
> Any help would be great! Thanks!


If you want to make the string all uppercase then just go through the
string and convert all the characters:

const char* strtoupper(string str)
{
for (int i=0;i<str.size();i++)
str[i] = toupper(str[i]);
return str.c_str();
}

 
Reply With Quote
 
Jay Nabonne
Guest
Posts: n/a
 
      10-18-2005
On Tue, 18 Oct 2005 15:48:13 -0700, GRoll21 wrote:

> I know there is a function but I cannot seem to find it. There should
> be a way to uppercase a char right?
>
> Here is what I got.
>
> cout << "Enter title of a book for look up: ";
> cin >> firstString;
>
> if (strcmp(toupper(firstString), toupper(bookTitle[index])) == 0)
>
> then i check the book they enter to a book in my bookTitle array. How
> can I make it so it puts both firstString and bookTitle to uppercase?


If you just want to compare, you can use the case-insensitive version of
strcmp. Now is it strcmpi or stricmp? (I'm not sure.

- Jay
 
Reply With Quote
 
jalkadir
Guest
Posts: n/a
 
      10-19-2005
I wrote a set o f C++ classes that handle different types of string
manipulations one of string manipulations that is most needed by
programmers is the ability to convert the string to upper case:

const std::string& jme::strtools::toUpper( const std::string& s ) {
tmp = s;
tmp = this->trimIt( tmp );
for ( std::string::iterator i = tmp.begin(); i != tmp.end(); ++i )
{
*i = std::toupper( *i );
}
return tmp;
}
we are developing this library to be released under the GNU linces. So,
if you are interested you can via AIM=jalqadir
for a free copy of this library.

Have fun!

 
Reply With Quote
 
int2str@gmail.com
Guest
Posts: n/a
 
      10-19-2005
jalkadir wrote:
> const std::string& jme::strtools::toUpper( const std::string& s ) {


If you are working on a temporary copy anyway, why not simply declare
it like this:

const std::string& jme::strtools::toUpper( std::string s )

Saves a few lines of code and does the same...

> tmp = s;


Where is tmp declared?

> tmp = this->trimIt( tmp );


This function is called "toUpper()", why does it trim the string as
well?

> for ( std::string::iterator i = tmp.begin(); i != tmp.end(); ++i )
> {
> *i = std::toupper( *i );
> }
> return tmp;
> }


How about:

std::transform( tmp.begin(), tmp.end(), tmp.begin(),
(int(*)(int))std::toupper );

> we are developing this library to be released under the GNU linces. So,
> if you are interested you can via AIM=jalqadir
> for a free copy of this library.


Why not check it into sf.net or similar?
I'd like to see this library and monitor it's progress - maybe even
contribute. It would be easier that way.

Cheers,
Andre

 
Reply With Quote
 
Jack Klein
Guest
Posts: n/a
 
      10-19-2005
On Tue, 18 Oct 2005 23:57:54 GMT, Jay Nabonne
<(E-Mail Removed)> wrote in comp.lang.c++:

> On Tue, 18 Oct 2005 15:48:13 -0700, GRoll21 wrote:
>
> > I know there is a function but I cannot seem to find it. There should
> > be a way to uppercase a char right?
> >
> > Here is what I got.
> >
> > cout << "Enter title of a book for look up: ";
> > cin >> firstString;
> >
> > if (strcmp(toupper(firstString), toupper(bookTitle[index])) == 0)
> >
> > then i check the book they enter to a book in my bookTitle array. How
> > can I make it so it puts both firstString and bookTitle to uppercase?

>
> If you just want to compare, you can use the case-insensitive version of
> strcmp. Now is it strcmpi or stricmp? (I'm not sure.
>
> - Jay


There is no case-insensitive version of strcmp() in the standard C or
standard C++ library. What you are not sure of is the name of some
particular non-standard function on some specific implementation, or
perhaps the different names of several non-standard functions on
different implementations.

--
Jack Klein
Home: http://JK-Technology.Com
FAQs for
comp.lang.c http://www.eskimo.com/~scs/C-faq/top.html
comp.lang.c++ http://www.parashift.com/c++-faq-lite/
alt.comp.lang.learn.c-c++
http://www.contrib.andrew.cmu.edu/~a...FAQ-acllc.html
 
Reply With Quote
 
John Harrison
Guest
Posts: n/a
 
      10-19-2005
GRoll21 wrote:
> firstString is the book the user inputs.
>
> cout << "Enter title of a book for look up: ";
> cin >> firstString;
>


That is obvious, what Victor meant (I assume) is have you declared
firstString like this

std::string firstString;

or something like this

char firstString[99];

These details matter.

But in either case the answer is similar. You have a function toupper
which converts a single character to uppercase, you have a string or a
char array which is basically a whole bunch of characters, so you have
to write a loop which uses toupper on each character in your string or
char array.

This is called programming, there always comes a point where the
standard functions run out and you have to write your own. You've just
reached it.

john
 
Reply With Quote
 
Neil Cerutti
Guest
Posts: n/a
 
      10-19-2005
On 2005-10-19, jalkadir <(E-Mail Removed)> wrote:
> I wrote a set o f C++ classes that handle different types of
> string manipulations one of string manipulations that is most
> needed by programmers is the ability to convert the string to
> upper case:
>
> const std::string& jme::strtools::toUpper( const std::string& s ) {
> tmp = s;
> tmp = this->trimIt( tmp );
> for ( std::string::iterator i = tmp.begin(); i != tmp.end(); ++i )
> {
> *i = std::toupper( *i );
> }
> return tmp;
> }


You should not return a reference or pointer to automatic storage
class variables. tmp is destroyed when the function returns,
leaving the caller with a useless reference to a nonexistent
string.

--
Neil Cerutti
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off




Advertisments