Formatação de strings personalizada#
Introdução#
A formatação de strings em C++ para VEX IQ (1ª geração) utiliza especificadores de formatoestilo printf` para criar strings que incluem variáveis, expressões ou valores. Este método utiliza especificadores de formato como %d, %f, %s, etc., para introduzir valores em strings.
Formatação de números — Introduzir valores e expressões numa string.
%d— Formata números inteiros.%.xf— Define o número de casas decimais a apresentar para números de ponto flutuante.%x— Formata um número como hexadecimal.%c— Formata caracteres individuais.%s— Formata strings ao estilo C.
Combinar strings — Combinar texto e valores.
strcat— Concatenar strings ao estilo C manualmente.
Verificação de substrings — Teste para verificar a presença ou posição do texto.
strstr— Encontra uma substring dentro de uma string.
Sequências de escape — Formatar a saída com caracteres especiais.
\n— Adiciona uma quebra de linha (nova linha).
Formatação de números#
Em C++, são utilizados especificadores de formato para controlar a forma como os números e outros tipos de dados aparecem nas strings.
Integers#
Formata valores inteiros utilizando o especificador de formato %d.
%d
Este especificador de formato não possui parâmetros.
Return ValuesFormata o valor inteiro como um número inteiro na string.
Examplesint count = 42;
// Display a single variable
Brain.Screen.print("Count: %d", count);
int x = 1;
int y = 5;
// Display multiple variables
Brain.Screen.print("Position: (%d, %d)", x, y);
// Display a calculation
Brain.Screen.print("Sum: %d", 5 + 3);
// Display the robot's battery capacity
Brain.Screen.print("Battery: %d%%", Brain.Battery.capacity());
Fixed Decimal Places#
Controla quantas casas decimais um número de ponto flutuante é apresentado utilizando o especificador de formato %.xf.
%.xf
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O número de casas decimais a apresentar. |
Formata o valor de ponto flutuante com o número de casas decimais especificado.
Examples// Display pi with 2 decimal places
double pi = 3.1415926535;
Brain.Screen.print("Pi: %.2f", pi);
Hexadecimal#
Converte números para representação hexadecimal utilizando %x (minúsculas) ou %X (maiúsculas).
1 — Formata números em hexadecimal minúsculo.
%x
Parameters2 — Formata números em hexadecimal maiúsculo.
%X
Este especificador de formato não possui parâmetros.
Return ValuesFormata o valor inteiro como uma string hexadecimal.
Examples// Convert 255 to hexadecimal
int number = 255;
// Display hexadecimals
Brain.Screen.print("Hex: %x", number);
Brain.Screen.print("Hex: 0x%X", number);
Characters#
Formata caracteres individuais utilizando o especificador de formato %c.
%c
Este especificador de formato não possui parâmetros.
Return ValuesFormata o valor do caractere como um único caractere.
Exampleschar letter = 'A';
// Display a single character variable
Brain.Screen.print("Letter: %c", letter);
Strings#
Formata strings no estilo C (matrizes de caracteres) utilizando o especificador de formato %s.
%s
Este especificador de formato não possui parâmetros.
Return ValuesFormata o valor da string como texto.
Exampleschar message[] = "IQ";
// Display a string variable
Brain.Screen.print("Hello, %s", message);
Combinando strings#
Combina duas strings utilizando a função strcat.
char* strcat(char* string1, const char* string2);
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O texto a adicionar. Deve haver espaço para o novo texto. |
|
|
A sequência de caracteres que pretende adicionar. |
Devolve um ponteiro para a string resultante (string1).
Certifique-se de que a string tem espaço suficiente reservado para os caracteres que serão adicionados. Adicionar caracteres a uma string muito pequena pode sobrescrever outras variáveis e causar comportamentos inesperados.
// Make sure the variable has enough space
// for all characters (set it to 20)
char message[20] = "Hello,";
strcat(message, " IQ");
// Display the combined strings
Brain.Screen.print("%s", message);
Verificação de substrings#
Devolve um ponteiro para a posição da primeira ocorrência de uma string do tipo C noutra string utilizando a função strstr.
char* strstr(const char* str, const char* substring);
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um ponteiro para a string que está a ser pesquisada. |
|
|
A sequência de caracteres a procurar. |
Retorna um ponteiro para a primeira ocorrência da substring, ou NULL se a string não for encontrada.
char message[] = "Hey everyone!";
// Display if "Hey" is in the variable
if (strstr(message, "Hey") != NULL) {
Brain.Screen.print("Hello!");
}
Sequências de Escape#
As sequências de escape são caracteres especiais utilizados dentro de strings para formatar a saída de texto.
New Line#
Move o texto para uma nova linha ao imprimir, utilizando a sequência de escape \n.
\n
Esta sequência de escape não tem parâmetros.
Return ValuesInsere um caractere de nova linha na saída.
NotesIsso só funciona na consola. O texto não será enviado para a consola até que uma nova linha seja iniciada.
// Display text on two lines
printf("First line\nSecond line\n");