Pesquisar aqui

quarta-feira, 4 de dezembro de 2019

C++ - String (Parte 2)


Já tinha falado anteriormente no tipo de dado string.
Agora vou falar mais detalhadamente, mostrando algumas propriedades e funções interessantes dela.

Length (tamanho)
Uma string tem um tamanho, como é óbvio, e podemos obter esse número a partir da função length()
Como string é um objeto (de uma classe, falarei só futuramente sobre isto), pode conter funções, length() é uma delas.

Assim como qualquer outro objeto, acessa-se uma função na string ao escrever um ponto '.' e chamando a função, neste caso, length().
string name = "Nyck";

cout << name.length() << endl;

Como "Nyck" tem 4 carácteres, o output vai ser
4

Acessar um carácter (elemento)
Como nas arrays, podemos acessar os elementos.
No caso da string, os seus elementos são carácteres.

Para acessar, é da mesma forma que numa array, o índice entre [ ].
string name = "Nyck";

cout << name[0] << endl;

Com output

N

Mudar o carácter (elemento)
Então, da mesma forma que na array, podemos mudar os carácteres da string e tratá-los como as suas próprias variáveis char, mudando-as o quanto quisermos.
string name = "Nyck";

name[0] = '8'

cout << name << endl;

Com output
8yckyck

Conversão para outro tipo de dado
Ao incluirmos a biblioteca string
#include <string>

São adicionadas funções que permitem a conversão de string para outros tipos de dados, como por exemplo stoi() que transforma em int.
string numberString = "616";

int number = stoi(numberString) + 50;

cout << number << endl;

Com output

666

Mais informação sobre estas conversões aqui.

Programa exemplo
#include <iostream>
using namespace std;

int main()
{
    string name;
    cout << "Enter your name: ";
    cin >> name;
    
    for(int i = 0; i < name.length(); i++){
        name[i] = '0';
    }
    cout << name << endl;
}

  • O programa pede um nome (string) ao utilizador para name,
  • Existe um for loop que muda todos os carácteres da string name para 0.
  • Muda todos os valores porque o i vai desde 0 (1º elemento) ao tamanho da string - 1 (último elemento). Ou seja, se o nome for "Joe", vai desde 0 a 2.
  • Faz-se print de name (todos os carácteres 

Se o nome for "Jesus" na consola vai estar:
Enter your name: Jesus
00000


Referências - 30/11/2019

Sem comentários:

Enviar um comentário

Comente de forma construtiva...

Nota: só um membro deste blogue pode publicar um comentário.