Formato de cadena personalizado#

Introducción#

String formatting in C++ for VEX IQ uses printf-style format specifiers to create strings that include variables, expressions, or values. This method uses format specifiers like %d, %f, %s, etc., to insert values into strings.

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  int x = 1;
  int y = 5;

  // Display the variables using format specifiers
  Brain.Screen.print("Position: (%d, %d)", x, y);
}

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Display a calculation using format specifiers
  Brain.Screen.print("Sum: %d", 5 + 3);
}

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Display the robot's battery capacity using format specifiers
  Brain.Screen.print("Battery: %d%%", Brain.Battery.capacity());
}

Formatear números: insertar valores y expresiones en una cadena.

  • %d – Formatea números enteros.

  • %.xf – Establece la cantidad de decimales que se mostrarán para los flotantes.

  • %x – Formatea un número como hexadecimal.

  • %c – Formatea caracteres individuales.

  • %s – Formatea cadenas de estilo C.

Combinación de cadenas: combina texto y valores.

  • strcat – Concatena cadenas de estilo C manualmente.

Comprobación de subcadenas: prueba la presencia o posición del texto.

  • strstr – Encuentra una subcadena dentro de una cadena.

Secuencias de escape: formatea la salida con caracteres especiales.

  • \n – Agrega un salto de línea (nueva línea).

  • \t – Agrega un espacio de tabulación entre elementos.

Formato de números#

C++ utiliza especificadores de formato para controlar cómo aparecen los números y otros tipos de datos en las cadenas:

Integers#

%d formats integer values.

Usage:
%d

Parámetros

Descripción

Este método no tiene parámetros.

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  int count = 42;
  Brain.Screen.print("Count: %d", count);
  // Output: Count: 42
}

Fixed Decimal Places#

%.xf controls how many decimal places a floating-point number is displayed with.

Usage:
%.xf

Parámetros

Descripción

x

El número de decimales a mostrar.

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Display pi with 2 decimal places
  double pi = 3.1415926535;
  Brain.Screen.print("Pi: %.2f", pi);
  // Output: Pi: 3.14
}

Hexadecimal#

%x converts numbers to hexadecimal (lowercase) or %X for uppercase.

Usage:
%x or %X

Parámetros

Descripción

Este método no tiene parámetros.

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Convert 255 to hexadecimal
  int number = 255;
  Brain.Screen.print("Hex: %x", number);
  // Output: Hex: ff

  Brain.Screen.print("Hex: 0x%X", number);
  // Output: Hex: 0xFF
}

Characters#

%c formats single characters.

Usage:
%c

Parámetros

Descripción

Este método no tiene parámetros.

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  char letter = 'A';
  Brain.Screen.print("Letter: %c", letter);
  // Output: Letter: A
}

Strings#

%s formats C-style strings (character arrays).

Usage:
%s

Parámetros

Descripción

Este método no tiene parámetros.

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  char message[] = "IQ";
  Brain.Screen.print("Hello, %s", message);
  // Output: Hello, IQ
}

Combinando cadenas#

strcat can combine two strings together.

Nota: Asegúrese de que la cadena tenga suficiente espacio reservado para los caracteres que se están agregando o podría comenzar a escribir en la memoria que pertenece a otras variables.

Usage:
strcat(string1, string2)

Parámetros

Descripción

string1

La cadena que se va a añadir. Debe tener espacio para el nuevo texto.

string2

La cadena que desea agregar.

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  char message[] = "Hello,";
  strcat(message, " IQ");

  Brain.Screen.print("%s", message);
  // Output: Hello, IQ
}

Comprobación de subcadenas#

strstr returns a pointer to the position of the first occurrence of a C-style string in another string.

Usage:
strstr(str, substring)

Parámetros

Descripción

str

Un puntero a la cadena que se está buscando.

substring

La cadena a buscar.

Returns: Pointer to the first occurrence, or NULL if not found.

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  char message[] = "Hey everyone!";
  if (strstr(message, "Hey") != NULL) {
      Brain.Screen.print("Hello!");
  }
}

Secuencias de escape#

Las secuencias de escape son caracteres especiales que se utilizan dentro de las cadenas para dar formato a la salida de texto.

New Line#

\n moves text to a new line when printing.

Nota: Esto solo funciona en la consola. El texto no se enviará a la consola hasta que se inicie una nueva línea.

Parámetros

Descripción

Este método no tiene parámetros.

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

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

Tab Spacing#

\t inserts a tab space between words or numbers.

Nota: Esto solo funciona en la consola. El texto no se enviará a la consola hasta que se inicie una nueva línea.

Parámetros

Descripción

Este método no tiene parámetros.

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Display the quantity of barrels with tab spacing
  int quantity = 2;
  printf("Barrels:\t%d", quantity);
}