Strings

  • In C++ strings are really arrays, but there are some different functions that are used for strings, like adding to strings, finding the length of strings, and also of checking to see if strings match.
  • The definition of a string would be anything that contains more than one character string together. For example,“This” is a string. However, single characters will not be strings, though they can be used as strings.
  • Strings are arrays of chars. Static strings are words surrounded by double quotation marks. “This is a static string”
  • To declare a string of 50 letters, you would want to say:
  • char string[50];
  • This would declare a string with a length of 50 characters. Do not forget that arrays begin at zero, not 1 for the index number.
  • In addition, a string ends with a null character, literally a ‘\0’ character,that there will be an extra character on the end on a string.
  • It is like a period at the end of a sentence, it is not counted as a letter, but it still takes up a space.
  • Technically, in a fifty char array you could only hold 49 letters and one null character at the end to terminate the string.
  • Strings are useful for holding all types of long input.
  • If you want the user to input his or her name, you must use a string. Using cin>> to input a string works, but it will terminate the string after it reads the first space.
  • The best way to handle this situation is to use the function cin.getline.
  • Technically cin is a class, and you are calling one of its member functions.
  • The most important thing is to understand how to use the function however.
  • The prototype for that function is: cin.getline(char *buffer ,int length, char terminal_char);
  • The char *buffer is a pointer to the first element of the character array, so that it can actually be used to access the array.
  • The int length is simply how long the string to be input can be at its maximum (how big the array is).
  • The char terminal_char means that the string will terminate if the user inputs whatever that character is. Keep in mind that it will discard whatever the terminal character is.
  • It is possible to make a function call of cin.getline(arry,‘\n’); without the length, or vice versa, cin.getline(arry,50); without the terminal character. Note that \n is he way of actually telling the compiler you mean a new line, i.e. someone hitting the enter key.
    #include < iostream.h > 
    int main(){
    char string[256];	// A nice long string 
    cout << “Please enter a long string:” ;
    cin.getline(string, 256, ‘\n’); 	//The user input goes into string 
    cout << “Your long string was:” << endl << string; 
    return 0;}
    

    String Functions

  • String.h is a header file that contains many functions for manipulating strings.
  • One of these ,strcmp is the string comparison function. 1) int strcmp(const char *s1, const char *s2); strcmp will accept two strings. It will return an integer. This integer will either be:
  • Negative if S1 is less than s2.
  • Zero if S1 and S2 are equal.
  • Positive if S1 is greater than S2.
  • strcmp is case sensitive. strcmp also passes the address of the character array to the function to allow it to be accessed. 2) char *strcat(char *dest char *src);
  • strcat is short for string concatenate, which means to add to the end, or append. It adds the second string to the first string. It returns a pointer to the concatenated string.
  • char *strupr(char *s);
  • strupr converts a string to uppercase. It also returns a string, which will all be in uppercase. The input string, if it is an array and not a static string, will also all be uppercase.
  • char *strlwr(char *S);
  • strlwr converts a string to lowercase. It also returns a string, which will all be in lowercase. The input string, if it is an array, will also all be lowercase.
  • size_t =strlen(const char *)
  • strlen will return the length of a string, minus the terminating character(‘/0’).
  • The size_t is nothing to worry about. Just treat it as an integer, which it is. Here is a small program using many of the previously described functions Click Here For example


Arrays << Previous

Next >> Structure

Our aim is to provide information to the knowledge seekers. 


comments powered by Disqus




Footer1