Strings

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

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.

#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 da string A com a string B

Adicionar caractere no final da string

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

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";