Ir para conteúdo
Fórum Script Brasil
  • 0

Concatenação De Ponteiros Chars


Pilantra

Pergunta

5 respostass a esta questão

Posts Recomendados

  • 0

Ah num é coisa muito séria não, eu só estava testando algumas funcionalidades do GTK, e eu queria fazer o seguinte:

char *variavel1, *variavel2;

variavel2 = gtk_entry_get_text(GTK_ENTRY(texto));

variavel1 = "Você digitou: " + variavel2;

É isso, uma simples concatenação de Strings, a variavel2, recebe o valor que foi digitado no campo de texto do gtk, e a variavel1 recebe ele mais aquela frase, e depois é jogado no label!!!

Só que o sinal de + não funciona e nem o sinal de . e essa função que você me passou da Falha de Segmentação!!!!

Eu estou fazendo testes com essas coisas bem simples, porque dependendo da aplicação eu vou trabalhar muito com strings, e eu sempre mexo muito com Strings no Delphi e no Java!!!!

Ah, um detalhe importante, o GTK não aceita tipo String, somente char, esse é o problema, talvez o retorno da função strcat() retorna em String e da erro pois o receptor é char!!! sad.gif

Link para o comentário
Compartilhar em outros sites

  • 0
Ah num é coisa muito séria não, eu só estava testando algumas funcionalidades do GTK, e eu queria fazer o seguinte:

char *variavel1, *variavel2;

variavel2 = gtk_entry_get_text(GTK_ENTRY(texto));

variavel1 = "Você digitou: " + variavel2;

É isso, uma simples concatenação de Strings, a variavel2, recebe o valor que foi digitado no campo de texto do gtk, e a variavel1 recebe ele mais aquela frase, e depois é jogado no label!!!

Só que o sinal de + não funciona e nem o sinal de . e essa função que você me passou da Falha de Segmentação!!!!

Eu estou fazendo testes com essas coisas bem simples, porque dependendo da aplicação eu vou trabalhar muito com strings, e eu sempre mexo muito com Strings no Delphi e no Java!!!!

Ah, um detalhe importante, o GTK não aceita tipo String, somente char, esse é o problema, talvez o retorno da função strcat() retorna em String e da erro pois o receptor é char!!! sad.gif

Na verdade, strcat() não retorna nada. O primeiro parâmetro dela é passado por referência, portanto ele é alterado. Daí decorre a necessidade de que o vetor tenha um tamanho suficiente para conter seus próprios dados e mais os dados que serão concatenados. Não testei aqui, mas tente o seguinte:

    char *variavel1, *variavel2;
    variavel2 = gtk_entry_get_text(GTK_ENTRY(texto));
    variavel1 = "Você digitou: ";
    int tamanho = strlen(variavel1) + strlen(variavel2) + 1;
    
    char *s = new char[tamanho];

    strcat(s, variavel1);
    strcat(s, variavel2);
    
    cout << s << endl;

Veja se em "s" fica realmente o valor concatenado das duas outras strings.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...