• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

Objecto String

Serr@no™

GF Ouro
Membro Inactivo
Entrou
Set 23, 2006
Mensagens
1,690
Gostos Recebidos
0
Como já tinha referido, o tratamento de cadeias de caractéres exigia certos algoritmos e conhecimento de variadas funções. Em C++ foi criado um objecto string que facilita muito a tarefa do programador. Este já não precisa de se preocupar com os arrays dinamicos de caractéres e ganha inclusivé em eficiência.
#include <string> // necessário para se ter acesso ao objecto string
#include <iostream>
using namespace std;
// demonstração do uso de strings
int main()
{
string nome, sobrenome;


cout<<"Introduza o seu nome:"<<endl;
cin >> nome;


cout<<"Então " + nome + ", que tal este Tutorial? :) "<<endl;


cout<<"Qual o seu último nome?"<<endl;
cin >> sobrenome;


sobrenome = " " + sobrenome; // para ficar " Sobrenome"
nome += sobrenome; // para ficar "Nome Sobrenome"


cout<<"O seu nome completo é: "<< nome;


cin.get();
return 0;
}
Penso que este exemplo demonstra algumas das facilidades dadas pelo objecto string. De facto, tratar strings como um objecto em vez de como um array de caractéres é mesmo muito prático.
 

Serr@no™

GF Ouro
Membro Inactivo
Entrou
Set 23, 2006
Mensagens
1,690
Gostos Recebidos
0
Introdução aos Iteradores

Os iteradores serão dados mais à frente, mas fica aqui já o seu conceito e toda a sua utilidade. Um iterador é uma generalização de um apontador, de facto, é construído apartir de um apontador. Ainda é difícil demonstrar a utilidade de um iterador, por isso deixo somente uma demonstração da sua utilização.
#include <string> // necessário para se ter acesso ao objecto string
#include <iostream>
using namespace std;


// demonstração do uso de iteradores de strings
// este programa conta o número de vogais de uma frase introduzida
int main()
{
string::iterator it; // declarar um iterador de strings
string p;
int a,e,i,o,u, consoantes;
a = e = i = o = u = consoantes = 0;


cout<<"Introduza uma palavra (letras minusculas): ";
cin>>frase;


// percorrer a string
for( it = p.begin() ; it < p.end() ; ++it )
switch( *it )
{
case 'a': ++a; break;
case 'e': ++e; break;
case 'i': ++i; break;
case 'o': ++o; break;
case 'u': ++u; break;
default: if( *it != " " ) ++consoantes; break;
}


cout<<"A palavra: \""<< p <<"\" tem"<<endl
<< a+e+i+o+u <<" vogais, "<<a<<", "<<e<<", "<<i<<", "<<o<<", "<<u
<<" respectivamente, num total de "<< a+e+i+o+u + consoantes<< endl
<<" letras."<<endl;


cin.get();
return 0;
}
O método p.begin() devolve um iterador para o primeiro caractér da palavra p e o método p.end() devolve um iterador para o caractér terminador '\0'.
Usando o operador desreferência
star.gif
obtemos o conteúdo iterado pelo iterator it.
 
Topo