📖
C++
  • 1. C++ Basics
    • 1.1 Input, Output, and Program Structure
      • 1.1.1 Welcome to Data Structures in C++
      • 1.1.2 Hello World
      • 1.1.3 Input and Output
      • 1.1.4 getline and cin
      • 1.1.5 Program Structure
    • 1.2 Basic Data Types
      • 1.2.1 Basic Data Types
        • 1.2.1.1 Differences between C++ and Java Data Types and Variables
      • 1.2.2 Strings and Characters
      • 1.2.3 Numbers
      • 1.2.4 Booleans
    • 1.3 Conditional Statements
      • 1.3.1 Conditional Statements
      • 1.3.2 Basic If/Else Statements
      • 1.3.3 Comparing Strings
      • 1.3.4 Logical Operators
    • 1.4 Loops
      • 1.4.1 Loops
      • 1.4.2 For Loops
      • 1.4.3 While Loops
      • 1.4.4 Searching a String
    • 1.5 Functions in C++
      • 1.5.1 Functions in C++
      • 1.5.2 Defining and Calling Functions
      • 1.5.3 Passing by Reference vs Value
      • 1.5.4 Function Prototypes
  • 2. Going Beyond the Basics
    • 2.1 Vector Basics
      • 2.1.1 Vector Basics
      • 2.1.2 Creating and Accessing Vectors
      • 2.1.3 Inserting into a Vector
      • 2.1.4 Looping Through a Vector
    • 2.2 Function Default Values
      • 2.2.1 Function Default Values
      • 2.2.2 Default Values
      • 2.2.3 Default Values with a Prototype
      • 2.2.4 Example: Splitting a String
    • 2.3 Structs
      • 2.3.1 Structs
      • 2.3.2 Defining and Accessing Structs
      • 2.3.3 Using Structs: Line Length
    • 2.4 File Input/Output
      • 2.4.1 File Input/Output
      • 2.4.2 Reading in a File
      • 2.4.3 Processing a File
      • 2.4.4 Writing to a File
      • 2.4.5 Creating an Input Stream from a String
    • 2.5 Error Handling
      • 2.5.1 Error Handling
      • 2.5.2 Validating a Number
      • 2.5.3 Validating a Vector Index
      • 2.5.4 Throwing Other Values
  • 3. Libraries
    • 3.1 Header Files
      • 3.1.1 Header Files
      • 3.1.2 Header File
      • 3.1.3 Header and Implementation File
      • 3.1.4 Safer Header
    • 3.2 Using Libraries
      • 3.2.1 Using a Utilities Library
      • 3.2.2 The Util Library
  • 4. 2D Vectors, Stacks, and Queues
    • 4.1 2D Vectors
      • 4.1.1 2D Vectors
      • 4.1.2 The 2D Vector
      • 4.1.3 Creating a 2D Vector
    • 4.3 Stacks
      • 4.3.1 Stacks
      • 4.3.2 Basic Stack
      • 4.3.3 Stack Example: Reverse a String
    • 4.5 Queues
      • 4.5.1 Queues
      • 4.5.2 Basic Queues
      • 4.5.3 Queue Example: Next in Line
  • 5. Sets and Maps
    • 5.1 Pairs and Iterators
      • 5.1.1 Pairs and Iterators
      • 5.1.2 Pairs
      • 5.1.3 Iterators
    • 5.3 Sets
      • 5.3.1 Sets
      • 5.3.2 Basic Sets
      • 5.3.3 Iterating Through a Set
      • 5.3.4 Sets of Struct Values
    • 5.4 Maps
      • 5.4.1 Maps
      • 5.4.2 Map Basics
      • 5.4.3 Iterating Through a Map
      • 5.4.4 Updating Maps
  • 6. Recursion
    • 6.1 Functional Recursion
      • 6.1.1 Functional Recursion
      • 6.1.2 Basic Recursive Problem: Exponential
      • 6.1.3 Recursion Example: Reverse String
      • 6.1.4 Recursion Example: Make Sum
    • 6.2 Procedural Recursion
      • 6.2.1 Procedural Recursion
      • 6.2.2 Print Binary
      • 6.2.3 Print Permutations
      • 6.2.4 Depth vs Breadth Search
  • 7. Pointers, Linked Lists, and Graphs
    • 7.1 Pointers
      • 7.1.1 Pointers
      • 7.1.2 Assigning and Updating Pointers
      • 7.1.3 Pointers and Functions
      • 7.1.4 Pointers and Data Structures
    • 7.2 Linked Lists
      • 7.2.1 Linked Lists
      • 7.2.2 Basic Linked List
      • 7.2.3 Linked List and Recursion
      • 7.2.4 Example: Sorted Phone Book
      • 7.2.5 Doubly Linked List
    • 7.3 Graphs
      • 7.3.1 Graphs
      • 7.3.2 Basic Example: Breadth First Search
      • 7.3.3 Application: Connecting Cities
Powered by GitBook
On this page
  • Strings
  • Strings Are Mutable
  • String Functions
  • Characters
  • Try This Example
  1. 1. C++ Basics
  2. 1.2 Basic Data Types

1.2.2 Strings and Characters

The first data type we will explore are strings and characters. In the last lesson, you saw the basic use of the string variables. Strings are used in a similar fashion to languages such as Java, but there are a few differences worth noting.

Strings

A string is a series of characters stored in C++. While strings are included in the standard library, they are not automatically included. To use strings, you need to have either a string include or an iostream include since the iostream library already imports strings.

Like other languages, you will use both string literals and string variables. String literals are defined using double quotes ". String variables are declared with a lowercase string definition. You can either declare a variable by itself, or declare and initialize in one statement:

string str1;
str1 = "Hello!";

string str2 = "Hello!";

Strings Are Mutable

Strings are mutable, which means they can be modified without being overwritten, which is different from languages such as Java.

While you will not see a lot of string exercises in this course, it is important to note that there are more string commands available compared to languages that have immutable strings. For example, if we want to insert a word into the middle of a string, we can do it with a command such as:

str2.insert(5, " World");

String Functions

Here is the syntax for some of the basic string functions. These functions are similar to what you will find in most computer languages.

Function
Description

str.substr(index)

Take a substring from the index to the end of the string

str.substr(index, length)

Take a substring from the index for the specified length

str.insert(index, string)

Insert a string at a given index position

str.length()

Return the length of a string

str[index] or str.at(index)

Return the char at index

Similar to most computer languages, strings are zero indexed, which means the first character is located at index 0.

One thing to note is that the substring is different from Java. In Java, you specify the start and end index value, but in C++ you specify the starting point and the length of the substring.

Characters

Characters represent a single letter, digit, or symbol and are used similar to other languages:

  • Characters are declared with the keyword char

  • Characters are defined using single quotes '

char myChar = 'I';

As mentioned above, you can extract a character from a string using one of two ways, str[index] or str.at(index). If you use a valid index value, both return the same character.

If you attempt to access an invalid index, you will get different results. Using the .at() function will return an error for an invalid index. Using the [ ] will not crash your program, but will return a garbage value from something left in memory if the index is not valid.

As you explore C++ further, you will find this pattern. C++ has fewer checks than a language like Java, which means your program may not crash as much, but you will get bad values if you are not careful.

Try This Example

Previous1.2.1.1 Differences between C++ and Java Data Types and VariablesNext1.2.3 Numbers

Last updated 1 year ago

GDB online Debugger | Code, Compile, Run, Debug online C, C++GDB online Debugger
Strings and Characters
Logo