Duvida-ajuda com array

Viva

Gostaria de ajuda para declarar e preencher uma "array" de "char".

Tenho uma "array" que declaro da seguinte forma:

char texto[] = "ABCDEFGH";

Até aqui tudo bem, agora a minha duvida, se é possível,
e se a minha pergunta faz qualquer sentido (é que ja la vão uns
largos anos que não pegava em C ) preencher essa "array"
com o conteúdo de uma variável declarada da seguinte forma:

char *texto1 = "ABCDEFGH";

Basicamente o conteúdo da "array" passa a ser o conteúdo da variável.

qq coisa como:

char texto[] = (texto1);

Qualquer dica, agradeço.

Queres duplicar ou apontar para a mesma string?

Para copiar (duplicar) podes usar strcpy

bubulindo:
Queres duplicar ou apontar para a mesma string?

Para copiar (duplicar) podes usar strcpy

Viva.

Apontar. O conteúdo da variável texto1 vem da leitura de uma linha de 40 chars de um SDcard. Bastava apontar para o conteúdo da var texto1.

Eu testei:

char texto [] = {*texto1};

Mas sem resultado, o conteúdo vem truncado.

Obrigado.

Uma coisa assim funciona:

char texto[]="ABCD";
char *texto1 = texto;

Desta forma "texto1" fica a apontar para o mesmo conteúdo que "texto".

luisilva:
Uma coisa assim funciona:

char texto[]="ABCD";

char *texto1 = texto;




Desta forma "texto1" fica a apontar para o mesmo conteúdo que "texto".

Viva.

Grato, mas era o contrario, eu queria que o texto ficasse com o conteúdo do texto1.
Ja tinha conseguido o que pretendia. Fui pela 2 opção do bubulindo, resolvi assim:

strcpy ( texto, texto1);

.

Ja agora vou explicar para que queria isso.
Um familiar pediu para lhe arranja um display para fazer scrool de um texto com varias matrizes de leds para a tasca dele.
Ha tanto codigo ja pronto por ai, que a parte electronica para mim nao era complicado.
Depois lembrei-me que cada vez que ele pretende-se mudar o anuncio, tinha que la ir eu mudar isso. Resolvi o problema com um leitor de cartoes sd e uma pq lib que permite definir parâmetros e suas variáveis. Assim ele pega no cartao sd e muda isso no pc dele, texto e velocidade do scrool.
Na lib o texte esta definido por :

char *text_sc

e na parte dos leds era :

char texto[]="ABCD";

Aos dois, muito agradecido.

arssant:
Viva.

Grato, mas era o contrario, eu queria que o texto ficasse com o conteúdo do texto1.
(...)

Humm... Não sei se será bem assim.

arssant:
(...)
Na lib o texte esta definido por :

char *text_sc

e na parte dos leds era :

char texto[]="ABCD";

(...)

Para que uma string possa ser definida a forma:

char *text_sc

em algum sítio do código tem que existir uma coisa como:

char txt[11];
strcpy ( txt, "qualquer string");
*text_sc=txt;

Até pode não estar de forma explicita como aqui, mas isto tem que existir (outra opção é a utilização de alocação dinâmica de memória, mas duvido que isso seja usado).

Se as variáveis estão definidas dessa forma, o que eu tentaria fazer seria a conversão do vector para ponteiro:

char *texto;

seguidamente, após a leitura da string do SD, seria igualar os dois ponteiros:

texto = text_sc;

Isto assim deveria dar alguma coisa.

Já agora, qual é essa biblioteca de leitura de cartão?

luisilva:
em algum sítio do código tem que existir uma coisa como:

strcpy ( txt, "qualquer string");

Já agora, qual é essa biblioteca de leitura de cartão?

Boas.

Sim esta implementado na lib, nao no codigo.

È esta:

Tive que alterar-adicionar a lib para poder aceitar "longs e floats" nas config:
Utilizei essa lib para o meus dados: channel e key do thingspeak. No SD card assim tenho as definições de rede ( codigo do surfertim ) e do meu canal do teamspeak.
Basicamente o file no sd tem o seguinte formato:

texto=qwerty
tempo=50

O n de variaveis ? pelo menos 3 dão, mais não testei.

arssant:
(...)
Tive que alterar-adicionar a lib para poder aceitar "longs e floats"
(...)

Não devia ser necessário, bastaria ler a string e com essa implementar uma conversão usando "atoi" ou "atof" (ou algo do género).

Depois de ver a biblioteca continuo sem compreender porque é que uma coisa como:

luisilva:
(...)

char *texto;

seguidamente, após a leitura da string do SD, seria igualar os dois ponteiros:

texto = text_sc;

(...)

que é o mesmo (para quem entende linguagem C) que fazer:

luisilva:
(...)

char texto[]="ABCD";

char *texto1 = texto;



(...)

não funiona.

luisilva:
Não devia ser necessário, bastaria ler a string e com essa implementar uma conversão usando "atoi" ou "atof" (ou algo do género).

Depois de ver a biblioteca continuo sem compreender porque é que uma coisa como:
que é o mesmo (para quem entende linguagem C) que fazer:não funiona.

Viva.

Grato pela ajuda. Foi "necessário" porque é na própria lib que existe a conversão "atoi", faltava era "atof e atol". Quem fez a lib devia querer simplificar ao máximo a função de ler os dados no SD e passar para variáveis dentro do sketch principal.

Do resto, como disse ao inicio, C para mim foi a uns bons anos na faculdade... e por vx tenho alguns "breaks".

Mais uma vx, obrigado.