Chapter 8 (pp. 177–182) of Computer Science I.
Topics
| Section | Page | Content |
|---|---|---|
| Basic Operations | 177 | Length, indexing, concatenation, substrings. |
| Comparisons | 178 | Lexicographic comparison; equality vs identity. |
| Tokenizing | 179 | Splitting strings into tokens. |
Key Ideas
- String comparison is not
==in every language — a recurring gotcha, made concrete in C (strcmp, char arrays) and Java (.equals()vs==). - Tokenizing underpins parsing input and file I/O.
- In C, strings are null-terminated char arrays — no native string type.
Examples
Reverse a string
result ← ""
for i from length(s) - 1 down to 0:
result ← result + s[i]
Tokenize
parts ← split("a,b,c", ",") // ["a", "b", "c"]
Compare lexicographically
if compare("apple", "banana") < 0:
print "apple comes first"
Never rely on == for content equality in every language.
In Java
String r = new StringBuilder(s).reverse().toString();
String[] parts = "a,b,c".split(","); // ["a", "b", "c"]
if ("apple".compareTo("banana") < 0) // use compareTo/equals, not ==
System.out.println("apple comes first");
== compares references; .equals() / .compareTo() compare content.
Citations
[1] Computer Science I, Ch. 8, pp. 177–182.