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.