Você está aqui: C++ ::: Dicas & Truques ::: Strings e Caracteres |
Efetuando atribuição de strings em C++ usando a função assign()Quantidade de visualizações: 7782 vezes |
A clase string possui o operador "=" sobrecarregado, o que facilita muito a atribuição de strings. Além disso, temos à nossa disposição a função assign() que pode ser usada para o mesmo objetivo. Entre as várias sobrecargas desta função, duas nos interessam: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- string& assign(const string& str); string& assign(const char* s); A primeira versão nos permite atribuir um objeto string a outro objeto string (ou um literal string a uma variável do tipo string): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]) { string str1, str2 = "Gosto muito de Ruby On Rails"; // vamos atribuir a segunda string à primeira str1.assign(str2); // exibe o resultado cout << str1 << "\n"; // outra atribuição str2.assign("PHP é muito bom também"); // exibe o resultado cout << str2 << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } A segunda versão nos permite atribuir uma string C (aquelas terminadas em null) a um objeto string. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]) { string str1; char *str2 = "Gosto muito de Java"; // vamos atribuir a string C ao objeto string str1.assign(str2); // exibe o resultado cout << str1 << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
Link para compartilhar na Internet ou com seus amigos: |
C++ ::: STL (Standard Template Library) ::: Vector C++ |
Como criar um vector de strings em C++, inserir alguns nomes usando a função push_back() e percorrê-los usando um iteradorQuantidade de visualizações: 11038 vezes |
Se você tem pouca experiência com a classe container vector da STL (Standard Template Library), este exemplo o ajudará um pouco. Aqui eu mostro como criar um vector de strings em C++, inserir alguns nomes nele usando a função push_back() e depois percorrê-los individualmente usando um iterador. Veja o código C++ completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <iostream> #include <vector> using namespace std; int main(int argc, char *argv[]){ // um vector vazio que conterá strings vector<string> nomes; // vamos inserir três nomes nomes.push_back("Osmar J. Silva"); nomes.push_back("Carlos de Souza"); nomes.push_back("Maria Dias de Carvalho"); // vamos percorrer o vector e exibir os nomes vector<string>::iterator it; for(it = nomes.begin(); it < nomes.end(); it++){ cout << *it << endl; } cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: Osmar J. Silva Carlos de Souza Maria Dias de Carvalho |
C++ ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em C++ - Como criar e usar métodos estáticos em suas classes C++Quantidade de visualizações: 14646 vezes |
Como já vimos em outras dicas desta seção, uma classe C++ possui propriedades (variáveis) e métodos (funções). Veja a seguinte declaração de uma classe Produto:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // definição da classe Produto class Produto{ public: void setNome(string); string getNome(); void setPreco(double); double getPreco(); private: string nome; double preco; }; Aqui cada instância da classe Produto terá suas próprias variáveis nome e preco e os métodos que permitem acesso e alteração destas variáveis também estão disponíveis a cada instância. Há, porém, situações nas quais gostaríamos que um determinado método estivesse atrelado à classe e não à cada instância individual. Desta forma, é possível chamar um método de uma classe sem a necessidade da criação de instâncias da mesma. Métodos estáticos em C++ podem ser criados por meio do uso da palavra-chave static. É comum tais métodos serem declarados com o modificador public, o que os torna acessíveis fora da classe na qual estes foram declarados. Veja um exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <cstdlib> #include <iostream> #include <string> using namespace std; // classe Pessoa com duas variáveis privadas e // um método estático class Pessoa{ public: // um método estático que permite verificar a validade // de um número de CPF static bool isCPFValido(string); private: string nome; int idade; }; // implementação da classe Pessoa bool Pessoa::isCPFValido(string cpf){ // alguns cálculos aqui return true; } int main(int argc, char *argv[]){ // vamos efetuar uma chamada ao método isCPFValido() sem // criar uma instância da classe Pessoa if(Pessoa::isCPFValido("12345")){ cout << "CPF Válido" << endl; } else{ cout << "CPF inVálido" << endl; } system("PAUSE"); return EXIT_SUCCESS; } Aqui nós temos os códigos da definição e implementação da classe Pessoa em apenas um arquivo (main.cpp). Em uma aplicação real é interessante colocar estas partes em arquivos separados (.h e .cpp). Note que o método estático isCPFValido() foi declarado assim: static bool isCPFValido(string); Desta forma, podemos chamá-la a partir de código externo à classe sem a necessidade de criar uma nova instância da mesma. Veja: if(Pessoa::isCPFValido("12345")){} É importante notar que métodos estáticos não possuem acesso a variáveis e métodos não estáticos da classe, tampouco ao ponteiro this (que só existe quando criamos instâncias da classe). Assim, o trecho de código abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- bool Pessoa::isCPFValido(string cpf){ // alguns cálculos aqui // vamos acessar a variável não estática nome nome = "Osmar J. Silva"; return true; } vai gerar o seguinte erro de compilação: invalid use of member `Pessoa::nome' in static member function. Se usarmos this->nome a mensagem de erro de compilação será: `this' is unavailable for static member functions. Métodos estáticos são úteis quando precisamos criar classes que atuarão como suporte, nas quais poderemos chamar funções (métodos) auxiliares sem a necessidade de criar novas instâncias a cada vez que estas funções forem necessárias. |
C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como ordenar os elementos de vetor C++ usando a Ordenação da Bolha (Bubble Sort) - RevisadoQuantidade de visualizações: 15433 vezes |
O método ou algorítmo de ordenação da bolha é uma das técnicas mais simples de ordenação. No entanto, este método não é eficiente, visto que o tempo despendido para sua execução é muito elevado se comparado à outros métodos existentes. Geralmente usamos este método quando queremos ordenar 50 elementos ou menos. O entendimento deste método é fácil. Se estivermos ordenando os valores do menor para o maior, o método da bolha percorre os elementos da matriz, comparando e movendo o menor valor para a primeira posição do vetor (array), tal qual bolhas indo para a superfície. Veja um exemplo completo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <iostream> using namespace std; void bubble_sort(int matriz[], int tam){ int temp, i, j; for(i = 0; i < tam; i++){ for(j = 0; j < tam; j++){ if(matriz[i] < matriz[j]){ temp = matriz[i]; matriz[i] = matriz[j]; matriz[j] = temp; } } } } int main(int argc, char *argv[]) { int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11}; int const quant_elem = 9; // imprime a matriz sem a ordenação for(int i = 0; i < quant_elem; i++){ cout << valores[i] << " "; } // vamos ordenar a matriz bubble_sort(valores, quant_elem); // imprime a matriz ordenada cout << endl; for(int i = 0; i < 9; i++){ cout << valores[i] << " "; } cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executarmos este código nós teremos o seguinte resultado: 4 6 2 8 1 9 3 0 11 0 1 2 3 4 6 8 9 11 Pressione qualquer tecla para continuar... |
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
Python - Como excluir e retornar um item da lista Python baseado em seu índice usando a função pop() |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |