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.

Format specifiers
%d

Parameters

Este especificador de formato não possui parâmetros.

Return Values

Formata o valor inteiro como um número inteiro na string.

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

Format specifiers
%.xf

Parameters

Parâmetro

Tipo

Descrição

x

int

O número de casas decimais a apresentar.

Return Values

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

Format specifiers

1 — Formata números em hexadecimal minúsculo.

%x

2 — Formata números em hexadecimal maiúsculo.

%X

Parameters

Este especificador de formato não possui parâmetros.

Return Values

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

Format specifiers
%c

Parameters

Este especificador de formato não possui parâmetros.

Return Values

Formata o valor do caractere como um único caractere.

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

Format specifiers
%s

Parameters

Este especificador de formato não possui parâmetros.

Return Values

Formata o valor da string como texto.

Examples
char message[] = "IQ";

// Display a string variable
Brain.Screen.print("Hello, %s", message);

Combinando strings#

Combina duas strings utilizando a função strcat.

Available Functions
char* strcat(char* string1, const char* string2);

Parameters

Parâmetro

Tipo

Descrição

string1

char*

O texto a adicionar. Deve haver espaço para o novo texto.

string2

const char*

A sequência de caracteres que pretende adicionar.

Return Values

Devolve um ponteiro para a string resultante (string1).

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

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

Available Functions
char* strstr(const char* str, const char* substring);

Parameters

Parâmetro

Tipo

Descrição

str

const char*

Um ponteiro para a string que está a ser pesquisada.

substring

const char*

A sequência de caracteres a procurar.

Return Values

Retorna um ponteiro para a primeira ocorrência da substring, ou NULL se a string não for encontrada.

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

Format specifiers
\n

Parameters

Esta sequência de escape não tem parâmetros.

Return Values

Insere um caractere de nova linha na saída.

Notes
  • Isso só funciona na consola. O texto não será enviado para a consola até que uma nova linha seja iniciada.

Examples
// Display text on two lines
printf("First line\nSecond line\n");