Nesta aula aprenderemos sobre as strings. Strings nada mais são do que uma sequência de caracteres, seria algo como uma palavra que nada mais são do que várias letras seguidas. Outra forma de definir uma string é como um vetor de caracteres (char).

string palavra = "Abacaxi"; // Declarando string
string str; // Declarando string
cin >> str; // Lendo uma string
cout << str; // Imprimindo uma string
view raw String.cpp hosted with ❤ by GitHub

Para comparar duas strings em ordem alfabética basta usarmos os operadores (<, >, ==). Uma string é menor que outra se ela vem antes na ordem lexicográfica.

No exemplo abaixo, iremos comparar duas strings A e B para saber qual dessas duas vem antes em ordem alfabética.

/*
Observação: Se você voltar na aula de caracteres (char) e observar a tabela ASCII, você vai observar que outros
caracteres além de letras (maiusculas e minusculas) também estão tabelados. Com isso, podemos observar que o
caractere '!' possui o valor 33 e a letra 'A' possui o valor 65, isso nos permite utilizar outros caracteres
e fazer comparações mais abrangentes e essa ordenação nos chamamos de ordem lexicográfica. Toda essa explicação
é para que você entenda que as comparações a seguir são ordenações lexicograficas que é mais abrangente que a
ordem alfabética, porque também podemos comparar letras maiusculas e minusculas, então na ordem lexografica 'A'
vem antes de 'a'. E utilizando strings, nos vamos comparando posição a posição das strings então teriamos que:
Suponha que A = "!bca" e B = "f", teriamos como resposta que A é menor que B pois ao compararmos a primeira posição
de A com a de B temos que '!' vem antes de 'f' lexicograficamente.
*/
#include <iostream>
#include <string> // biblioteca da string
using namespace std;
int main()
{
string A, B;
cin >> A >> B;
if(A < B) cout << A << " vem antes de " << B << "\n";
if(A == B) cout << "As strings são iguais" << "\n";
if(A > B) cout << A << " vem depois de " << B << "\n";
return 0;
}

As Strings já possuem algumas funções e operadores implementados, vamos listar os mais importantes, mas caso queira ver todos as funções e operadores de strings, recomendo que acesse este link.

Para acessar um caractere em uma posição de uma string S, basta acessar S[pos]

string palavra = "Abacaxi";
cout << palavra[2] << "\n"; // Imprimir o caractere na posição 2
palavra[0] = 'X'; // Mudar o caractere na posição "0" para 'X'

Descobrir o tamanho uma string.

int tamanho = palavra.size(); // Tamanho da string

Para concatenar basta usarmos o operador “+”, ele vai simplesmente juntar as duas strings.

string A = "abacaxi", B = "papagaio";
string C = A + B; // C = "abacaxipapagaio"
// A string C representa a concatenação(junção) da string A com a string B

Adicionar caractere no final da string

string S;
char letra;
// O caractere “letra” foi adicionado ao final da string S
S.push_back(letra);

Inverter uma string

string palavra = "abacaxi";
reverse(palavra.begin(), palavra.end());
// Caso queira inverter apenas uma parte da string
// basta alterar o valor dos ponteiros na função
// Apos inverter a string, ela ficará da seguinte forma "ixacaba"
cout << palavra << "\n";