C++ ::: Dicas & Truques ::: Strings e Caracteres |
Como pesquisar uma substring em uma string C++ usando o método find() e retornar o índice do primeiro caractereQuantidade de visualizações: 10489 vezes |
|
Nesta dica mostrarei como podemos usar a função find() da classe String do C++ para pesquisar parte de uma palavra, frase ou texto. Se a substring for encontrada, o índice do seu primeiro caractere é retornado. Caso contrário o valor npos é retornado. Veja o código C++ completo para o exemplo:
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// vamos criar uma string
string frase = "Gosto de Java e C++";
cout << "A string informada foi: " << frase << endl;
// agora vamos checar a existência da substring
size_t pos = frase.find("Java");
// a substring foi encontrada?
if(pos == string::npos){
cout << "A substring nao foi encontrada." << endl;
}
else{
cout << "A substring foi encontrada" <<
" no indice " << pos << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código C++ nós teremos o seguinte resultado: A string informada foi: Gosto de Java e C++ A substring foi encontrada no indice 9 |
MySQL ::: Dicas & Truques ::: Chaves, Índices e Restrições de Integridade Referencial |
Como adicionar uma chave primária a uma tabela MySQL usando o comando ALTER TABLE ADD PRIMARY KEYQuantidade de visualizações: 8315 vezes |
|
Em algumas situações poderá ocorrer a necessidade, talvez por motivos de manutenção na base de dados, de criar uma chave primária para uma tabela MySQL já existente. Isso pode ser feito com o auxílio do comando DDL ALTER TABLE ADD PRIMARY KEY. Comece criando uma tabela livros sem chave primária. Veja o comando CREATE TABLE: CREATE TABLE livros( id int(11) unsigned NOT NULL, titulo varchar(45) NOT NULL, paginas int(10) unsigned NOT NULL )ENGINE=InnoDB; Se dispararmos um comando DESCRIBE livros veremos a seguinte estrutura: Field Type Null Key Default Extra id int(11) unsigned NO - - - titulo varchar(45) NO - - - paginas int(10) unsigned NO - - - ALTER TABLE livros ADD PRIMARY KEY(id); Dispare o comando DESCRIBE livros novamente e veja o resultado. Agora o campo id está marcado como chave primária: Field Type Null Key Default Extra id int(11) unsigned NO PRI - - titulo varchar(45) NO - - - paginas int(10) unsigned NO - - - |
C ::: Dicas & Truques ::: Arquivos e Diretórios |
Como abrir ou criar arquivos em C usando a função fopen()Quantidade de visualizações: 66893 vezes |
Há muitas situações nas quais precisamos ler ou gravar dados em arquivos a partir de nossos programas C. O primeiro passo para esta tarefa é aprender a usar a função fopen(). Esta função é a responsável por conectar um ponteiro de arquivos ao arquivo que queremos manipular. Veja sua assinatura:FILE *fopen(const char *nome, const char *modo); O parâmetro nome é uma string que indica o nome do arquivo a ser aberto ou criado. O parâmetro modo indica se o arquivo será aberto para leitura, escrita ou ambos. Antes de continuarmos, veja um trecho de código que tenta abrir um arquivo chamado "testes.txt" localizado no diretório "c:\":
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *arquivo = fopen("c:\\testes.txt", "r");
// testa se o arquivo foi aberto com sucesso
if(arquivo != NULL)
printf("Arquivo foi aberto com sucesso.");
else
printf("Nao foi possivel abrir o arquivo.");
printf("\n\n");
system("PAUSE");
return 0;
}
Veja que a primeira linha declara um ponteiro para a estrutura FILE e atribui a este ponteiro o resultado de uma chamada à função fopen(). Se o arquivo for aberto com sucesso, poderemos manipulá-lo a partir do ponteiro *arquivo. Do contrário, o valor NULL será retornado. A linguagem C padrão permite a definição dos seguintes modos de abertura de arquivos: a - abre um arquivo para inserção. Se o arquivo não existir, o sistema operacional tentará criá-lo. r - abre um arquivo existente para leitura. w - abre um arquivo para escrita. Se o arquivo não existir, o sistema operacional tentará criá-lo. Se o arquivo existir, todo o seu conteúdo será substituído pelo novo conteúdo. r+ - abre um arquivo existente para leitura e gravação. w+ - abre um arquivo para leitura e escrita. Se o arquivo não existir, o sistema operacional tentará criá-lo. Se o arquivo existir, todo o seu conteúdo será substituído pelo novo conteúdo. a+ - abre um arquivo para inserção e leitura. Se o arquivo não existir, o sistema operacional tentará criá-lo. |
Python ::: wxPython ::: Gerenciadores de Layout do wxPython |
Como usar o gerenciador de layout BoxSizer em suas aplicações wxPythonQuantidade de visualizações: 477 vezes |
|
O gerenciador de layout BoxSizer do wxPython é o mais comum em aplicações Python usando interfaces gráficas do usuário, ou seja, aplicações GUI. Este gerenciador de layout nos permite agrupar vários controles em uma linha ou coluna, e podemos ainda colocar um BoxSizer dentro de outro BoxSizer, o que resulta em layouts bem mais complexos. Para definir se os controles serão colocados na vertical ou horizontal nós podemos usar os valores wx.VERTICAL ou wx.HORIZONTAL no construtor da classe BoxSizer para ajustar a orientação do layout. Veja uma aplicação wxPython completa na qual colocamos três botões wx.Button na janela principal do programa, dispostos na horizontal:
# vamos importar o framework wxPython
import wx
# classe que representará a janela principal da
# aplicação wxPython
class JanelaPrincipal(wx.Frame):
# o método construtor
def __init__(self, *args, **kw):
# chama o construtor da classe wx.Frame
super(JanelaPrincipal, self).__init__(*args, **kw)
# chama a função que inicializa a GUI
self.InicializarGUI()
# função que inicializa a GUI do programa
def InicializarGUI(self):
# vamos criar um painel
painel = wx.Panel(self)
# definimos a cor de fundo para o painel
painel.SetBackgroundColour(wx.WHITE)
# criamos um BoxSizer
vbox = wx.BoxSizer(wx.HORIZONTAL)
# vamos criar três botões e adicioná-los ao BoxSizer
btn1 = wx.Button(painel, label='Produtos', size=(90, 30))
btn2 = wx.Button(painel, label='Clientes', size=(90, 30))
btn3 = wx.Button(painel, label='Fornecedores', size=(90, 30))
vbox.Add(btn1, flag=wx.LEFT|wx.TOP, border=10)
vbox.Add(btn2, flag=wx.LEFT|wx.TOP, border=10)
vbox.Add(btn3, flag=wx.LEFT|wx.TOP, border=10)
# colocamos o sizer no painel
painel.SetSizer(vbox)
# definimos o tamanho da janela
self.SetSize((450, 350))
# definimos o título da janela
self.SetTitle('O gerenciador de layout BoxSizer')
# e centralizamos a janela
self.Centre()
# função principal do programa Python
def main():
# vamos criar a aplicação wxPython
app = wx.App()
janela_principal = JanelaPrincipal(None)
janela_principal.Show()
app.MainLoop()
if __name__ == "__main__":
main()
Note o uso de um objeto wx.Panel para a criação de um painel no qual colocaremos o BoxSizer. Observe também o uso das flags wx.LEFT|wx.TOP para ajustarmos as bordas ao redor de cada um dos botões inseridos no gerenciador de layout. |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Android Java - Como detectar um clique em um botão do Android usando o evento onClick no XML de layout Java - Exercício Resolvido de Java - Usando um laço for para contar de 0 até 10 e somar todos os valores |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




