Contar as letras de uma string com mais de um elemento. (RESOLVIDO)

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.

Exibições: 403

Responder esta

Respostas a este tópico

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...

https://www.arduino.cc/en/Tutorial/BuiltInExamples#strings

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

Count_Array.ino

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

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço