Strings

Strings as char sequences

	char letter = 'a';  
  	char digit = '9';
  	string word = "alphabetic";
  	c_string, null-terminated 

string initialization

  char c[] = {'H', 'i', '\0'};  // '\0' is the null character (ASCII code 0)
  char c[] = "Hi";

string input/output

  char word[80];
  cin >> word; // reads the next word
  cout << word;

String Manipulation Functions

length 			strlen(s)
copy			strcpy(s1, s2)
comparison		strcmp(s1, s2)
cancatnation		strcat(s1, s2)

  char * strcpy(char * s1, const char * s2) 
	//    Copies s2 into s1, returns s1

  char * strcat(char * s1, const char * s2)
	//    Appends s2 at the end of s1. Returns s1

  int strcmp(const char * s1, const char * s2)
	//    Compares s1 to s2 using lexicographic (like alphabetic)
	//	Returns 0 if s1 = s2.
	//      Returns negative if s1 < s2.
	//    	Returns positive if s1 > s2.

const in function prototypes: 
// not be changed after it is initialized				      

string conversion in <stdlib.h>

atof
atoi
itoa

String Libraries

Lib		class		include file
=============================================
MS c/c++        CString         
Turbo/Borland   String

Adams           Strings         "Strings.h"
Astrachan       string          "CPstring.h"
Standard        string          <string>
=============================================

Reference:

Owen L. Astrachan, A Computer Science Tapestry, McGraw-Hill, 1996.

Operations/Functions in Standard c++ lib

				
length           	s.length   

subscript         	s[i]
assignment        	s1 = s2; s1 += s2;
relational        	s1 <rl> s2      
cancatenation      	s1 + s2         

substring         	s.substr(5,3)

pattern matching 	s.find(s1)

input			cin >> s;
			getline(input, s)
			input.get(ch)
output			cout << s;

Examples:

  1. compose2.cc
  2. spreader.cc

Examples in Chapter 19

  1. assignment and concatenation
  2. comparison
  3. substring
  4. swapping
  5. characteristics
  6. finding
  7. replacing
  8. inserting
  9. conversion to C-style strings