Compare single characters directly. e.g.
char inChar; cin >> inChar; if ( inChar =='a') ...If you want to test for upper or lower case, it is better to use one of the cctype functions. i.e. Instead of if (inChar >= 'a' && inChar <= 'z') it is better to say if (islower(inChar)) The following table shows some of the cctype functions that you can use.
Function | Integer Value Returned |
---|---|
isalpha(ch) | A non-zero value if ch is a letter, otherwise: 0 |
isalnum(ch) | A non-zero value if ch is an alpha-numeric, otherwise: 0 |
isdigit(ch) | A non-zero value if ch is a digit 0-9, otherwise: 0 |
islower(ch) | A non-zero value if ch is a lower-case, otherwise: 0 |
isupper(ch) | A non-zero value if ch is a upper-case, otherwise: 0 |
ispace(ch) | A non-zero value if ch is a space, otherwise: 0 |
toupper(ch) | If ch is a lower-case character it is converted to upper-case. Otherwise ch remains as it was before the call. |
tolower(ch) | If ch is an upper-case character it is converted to lower-case. Otherwise ch remains as it was before the call. |
Here is a little program you can experiment with to explore these functions.
/* Filename: ~ftp/pub/class/cplusplus/Csyntax-files/Cpgms/cctypes.cpp Purpose: To explore the cctypes functions for characters */ #include <iostream> using namespace std; int main() { char ch; cout << endl << "This program experiments with cctype functions." << endl; cout << "First function to be examined is: isalpha(ch)" << endl; ch = 'A'; cout << "isalpha(ch) for 'A' = " << isalpha(ch) << endl; ch = '$'; cout << "isalpha(ch) for '$' = " << isalpha(ch) << endl; cout << "Enter a value to check or a '+' to move on: "; cin >> ch; cout << endl; while ( ch != '+') { cout << "isalpha(ch) for " << ch << " = " << isalpha(ch) << endl; cout << "Enter a value to check or a '+' to move on: "; cin >> ch; cout << endl; } } // end main
To declare a C string: | char MyString[8]; |
To declare and initialize a C string: | char MyString[8] "a word";
Or just: char MyString[] "a word"; |
To assign a value to a C string: | strcpy(MyString, "new word"); |
To get the length of a C string: | cout << strlen(MyString); |
To convert a C string into its numeric integer equivalent:
( aSCII characters to integer value) |
cout << atoi(MyString); |
To convert a C string into its numeric float equivalent:
( aSCII characters to float value) |
cout << atof(MyString); |
#include <string>
.
Here are a few functions.
To declare an STL string: | string MyString; |
To declare and initialize an STL string: | string MyString("a word"); |
To assign a value to an STL string: | MyString = "a word";
Note: You could not do a simple assignment like this with character arrays. You had to use the strcpy function. |
To assign a different value to an STL string: | MyString = "a much longer string";
Note: With character arrays you were restricted by the size of the array. |
To join two or more STL strings: | string MyString1 = "first word";
string MyString2 = "first word"; string MyLongString; MyLongString = MyString1 + MyString2; Note: You couldn't do this with character arrays. |
To look at individual characters in an STL string:
(Using square brackets for subscripts like an array.) |
cout << "First letter is: " << MyString[0]; |
To find the length of an STL string: | cout << "Length is " << MyString.length(); |
To insert a string into another STL string: | MyString.insert(starting_position, other_string); |
To erase part of an STL string: | MyString.erase(starting_position, number_of_characters); |
To replace part of an STL string: | MyString.replace(starting_position, number_of_characters_to_replace, replacement_string); |
To convert an STL string into a C string:
You need to convert for some existing functions. See next two lines of this table. |
MyString.c_str(); |
To use an STL string in the atoi() function: |
atoi(MyString.c_str()); |
To use an STL string in the atof() function: |
atof(MyString.c_str()); |
To use an STL string in the file open() function: |
file_identifier.open(MyString.c_str()); |
This page has been accessed
times.
Last modified: Friday, 21-Aug-2020 15:28:13 CST
Copyright 2002 Department of Computer Science, University of Regina.