Galera bom dia.
Estou com um problema, outro na verdade.
Estou usando um string do tipo char* que possui mais de um elemento e preciso contar o numero de elementos e a quantidade de letradas de cada elemento da string.
Bom eu achei isso aqui, no próprio site:
Você pode dividir o tamanho de bytes do array pelo tamanho de bytes do tipo.
Olhe o exemplo abaixo:
int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
void setup(){
Serial.begin(9600);
int qtd_elementos = sizeof(array)/sizeof(int);
Serial.println(qtd_elementos);
}
void loop(){
}
e adaptei para minhas necessidades e funcionou bem ao contar a quantidade de elementos da string mas para contar o número de letras de cada elemento está complicado alguém, acho bastante coisa para C, C++ e C# e estou tentando.
Bom vou explicar o pq preciso disso, estou usando uma tela touch e estou criando um menu para ser mostrado nela. No entanto quero colocar as palavras dos botões centralizada então quero contar o tamanho das palavras para que todas fiquem centralizada nos botões.
Valeu galera.
Tags:
Bom dia GBV, (se não gosta que te chame pelas iniciais, avise),
não entendi bem sua dificuldade;
Seria algo assim:
String minhaStr[] = "{abacate, banana, tomate, mexerica, jenipapo}";
daí ao enviar para algum lugar vc quer limitar por exemplo em 5 letras,
e então enviaria algo assim, abaca ou banan ou tomat, etc.?
Se for faça assim :
String suaStr = " ";
suaStr = minhaStr[0].substring(0, 4);
Na string suaStr, vc terá a string de 5 caracteres.
RV
Referencias:
https://www.arduino.cc/reference/pt/language/variables/data-types/s...
Bom dia Minerin.
Primeiro obrigado pela rapidez com que me respondeu e desculpa a demora em lhe dar um retorno.
Então o que acontece eu tenho uma variável do tipo char *, por exemplo,
char *minhaStr[] = {"abacate", "banana", "tomate", "mexerica", "jenipapo" };
O que eu quero é contar o número de letras para cada um dos elementos da *minhaStr[].
Com o código que postei no fórum eu consigo saber quantos elementos existem na *minhaStr[], segue o código:
void ContarElementos()
{
qtd_elementos = sizeof(minhaStr) / sizeof(char*);
Serial.print("qtd_elementos: ");
Serial.println(qtd_elementos);
}.
Bom dia GBV,
devem existir outras formas de fazer, mas esta que fiz seu certo.
Testa aí e depois conta o resultado pra gente.
RV
Oi mineirin, cara valeu pela ajuda...nem sei como agradeço a galera do site e a você...galera muito nota 1000...
GBV, o DUE é uma placa muito estranha.
O sketch pra ela não funcionou com o for assim: " for (int i; i < qtd_elementos; i++) "
tive que remover o int de dentro da linha e antes da linha colocar : int i = 0;.
Daí funcionou.
RV
Oi GBV,
o erro foi meu, e não sei porque funcionou com o UNO.
Eu escrevi assim: for (int i ; i < qtd_elementos; i++), ao invés de escrever assim:
for (int i = 0; i < qtd_elementos; i++).
RV
Opa Mineirin, está tranquilo ...
Eu nem consegui sair do lugar se não fosse sua ajuda estaria até agora sem conseguir..rs...valeu
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por