Página 1 de 1
Dúvida C

Enviado:
06 Fev 2007 15:43
por Ricardo_Franco
Ola Senhores.
Gostaria de saber quando utilizamos as funções de manipulação de string em C do tipo “strcpy”, ou “strcat”, os compiladores já colocam o caractere “null” no final da string, ou devemos colocar na mão?
Ricardo Franco

Enviado:
07 Fev 2007 19:43
por jcapura
Sim, o compilador matem o "null".
Faz um teste com a rotina abaixo:
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
main(void)
{
int d;
char str1[100],str2[100];
printf ("Entre com uma string: ");
gets (str1);
strcpy (str2,"string ");
strcat (str2,str1); /* str2 armazenara"string" + o conteudo de str1 */
printf ("\n\n%s\n",str2);
for (d=0;d<strlen(str2)+4;d++)
printf ("caractere='%c'\n",str2[d]);
return(0);
}
O programa acima concatena a string digitada com o valor da variável str2. Depois mostra na tela a string concatenada e mostra em caracteres com + 5 valores depois do final, observe que ao final dos caracteres digitados deve haver um caracter 0.
Abraço,
Jorge Capura

Enviado:
07 Fev 2007 21:52
por Ricardo_Franco
Ola Jorge.
Aconteceu uma coisa muito curiosa comigo.
Eu uso o turbo C++ 3.0 para testar meus algoritmos, mas algumas funções da biblioteca string.h não funcionam exatamente da mesma forma no PSoC.
No turbo eu posso escrever a seguinte linha.
strcpy (strVariavelString, “Texto que eu quiser”);
que ele coloca o valor 0 (zero) “null”, no final.
No PSoC eu resolvi da seguinte forma, lembrando que eu estava utilizando o CY8C27443
strcpy (strVariavelString, “Texto que eu quiser”);
strVariavelString[19] = 0;
ai funcionou.
Quando eu testei de novo mas agora no CY8C29466. Ai não funcionou nada disso tive que usar outro comando parecido (este comando consta no PSoC C Compiler Guide)
cstrcpy (strVariavelString, “Texto que eu quiser”);
Muito curioso depois eu vi que o C no começo do comando é referente a constante, por isso um tratamento diferente.
Outra coisa que notei foram as quantidades de “warning” que aparecem quando compilo o CY8C27443, mas quando compilo o CY8C29466 (com o mesmo código fonte), eu consigo tirar todos os “warnings”. Isso eu também não sei explicar.
O importante é que funcionou.
Obrigado pela presteza Jorge.
Ricardo Franco

Enviado:
07 Fev 2007 22:30
por jcapura
Bom saber, pobre de nós que não temos nenhum livro que aborde linguagem C para Psoc.
Abraço
Jorge Capura

Enviado:
08 Fev 2007 09:39
por mrtabs
mas qual o tamanho de strVariavelString?

Enviado:
08 Fev 2007 22:24
por Ricardo_Franco
Ola Senhores.
foi apenas um exemplo pela metade. o vetor que usei dispunha de N+1 para o "null".
Esse é um detalhe que alguns acabam esquecendo, de considerar o caracter "null"
Ricardo Franco