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:
- compose2.cc
- spreader.cc
Examples in Chapter 19
- assignment and concatenation
- comparison
- substring
- swapping
- characteristics
- finding
- replacing
- inserting
- conversion to C-style strings