Concatenar Strings em C


23-03-2005 por Marhault
Concatenar Strings em C
Já to morrendo de raiva...
To usando o Turbo C e naum to conseguindo concatenar 2 strings...
tipo:

Código:
str1 = "12"; str2 = "30"; resultado = str1 + ":" + str2;
Eh assim q uso no PHP... como fazer isso no C ?

Ah... E se alguem souber uma função pra executar um outro programa tb ficarei grato...

Vlwzão!
23-03-2005 por Acquila
Acho que é strcat(str1,str2). Tenta aí.

A única função que conheço é a run(), mas se não em engano ela não existe no turbo C. Tem uma galera que saca mais de C aqui e eles vão poder dizer algo mais concreto.

[]!
23-03-2005 por kao00
O Acquila quase acertou.
Código:
#include <stdio.h> #include <string.h> int main() { char str1[] = "12"; char str2[] = "30"; strcat(str1, ":"); printf("str1 depois de strcat(str1, \":\"):\n%s", str1); strcat(str1, str2); printf("\nstr1 depois de strcat(str1, str2):\n%s", str1); return 0; }
24-03-2005 por jqueiroz
Oi Marhault, tem um jeito rápido de vc fazer isso: usando a função sprintf(). Ex:

Código:
char *str1 = "12"; char *str2 = "30"; char resultado[256]; sprintf( resultado, "%s:%s", str1, str2);
Só é preciso tomar cuidado com buffer overflows, OK?

[]s
24-03-2005 por kao00
Desse jeito é bom mesmo quando ele tem que conservar o valor da primeira variável. Legal.
24-03-2005 por jackinabox
Só para ajudar a entender:

O símbolo "+" é um operador. Note que, para a sintaxe a + b ser válida, o operador "+" deve estar definido para os tipos de operandos a e b, na linguagem específica em que estamos programando.

Por exemplo, se a e b forem variáveis de um tipo numérico primitivo, a semântica do operador "+" será "efetuar a soma aritmética do valor numérico dos números a e b, gerando um outro valor numérico como resultado".
Se a e b forem strings, entretanto, a semântica do operador "+" seria "concatenar as duas strings a e b, gerando uma outra string como resultado".

Portanto, apesar de utilizar-se o mesmo símbolo "+", o significado da operação depende do tipo de operando. E, para alguns tipos de operando, determinado operador da linguagem pode simplesmente não estar definido. É o que ocorre com as linguagens C/C++, por exemplo: o operador (binário) "+" não está definido para arrays de caracteres (char[]).

É importante saber, na linguagem em que se está programando, quais são os operadores e para quais tipos de dados estão definidos.
24-03-2005 por kao00
jackinabox, vc se enganou

Em C++ vc pode fazer algo do tipo
Código:
#include <iostream> #include <string> int main() { std::string str1 = "12"; std::string str2 = "30"; std::string hora; hora = str1 + ':' + str2; std::cout << hora << std::endl; return 0; }
Se bem que olhando ali agora vc falou sobre char[], mas se vc não tiver mesmo se engano, o Marhault e mais alguém que talvez não saiba vai ficar sabendo :P
24-03-2005 por pflynn
Citação:
jackinabox, vc se enganou

Não ! Ele está correto ! Em C++ você só pode concatenar strings com strings, com caracteres ou com vetores de caracteres usando o operador '+' porque o mesmo ja está sobrecarregado para a classe string (mas não para vetores de caracteres). Pode conferir isso nos headers se estiver curioso .
24-03-2005 por kao00
Foi por isso que eu falei, depois que coloquei o código...

Se bem que olhando ali agora vc falou sobre char[], mas se vc não tiver mesmo se engano, o Marhault e mais alguém que talvez não saiba vai ficar sabendo... :wink:

É que eu achei sacanagem eu ter tido o trabalho de escrever tudo e depois não postar, ahaha.
24-03-2005 por jackinabox
Citação:
Postado Originalmente por kao00
É que eu achei sacanagem eu ter tido o trabalho de escrever tudo e depois não postar, ahaha.
:roll: sml0107
25-03-2005 por Marhault
eu consegui
vlwzão!
05-09-2006 por pablojfreitas
Pessoal estou com uma duvida, eu quero pegar os 3 primeiros octetos do ip, e acrescentar o ultimo:
ex.: 13.1.1.1, 13.1.1.2, 13.1.1.3
Os 3 primeiros octetos eh uma variavel(Pesso pro usuario digitar), o ultimo octeto eh outra variavel (ele eh uma variavel da estrutura de repetição(while)).
Como faço pra juntar(concatenar) as duas variveis, na linguagem shell?
05-09-2006 por jqueiroz
pablojfreitas, por favor, evite postar mensagens que não tenham a ver com o tema original do tópico.

Além disso, peço que antes de postar num tópico, verifique a data da última postagem, para evitar postar em tópicos que não recebem respostas há muito tempo. O usuário que faz isso é chamado de "Coveiro de fórum", e atrapalha muito, pois traz à tona tópicos com discussões antigas, informações obsoletas, e corre o risco de não receber respostas, pois os outros participantes do fórum podem não mais estar interessados no assunto, nem participar do fórum.
 
Guia do Hardware Melhores Tópicos