تنسيق السلاسل المخصص#

مقدمة#

يستخدم تنسيق السلاسل النصية في لغة C++ لـ VEX V5 مُحدِّدات تنسيق printfprintf لإنشاء سلاسل نصية تتضمن متغيرات أو تعابير أو قيم. تستخدم هذه الطريقة مُحدِّدات تنسيق مثل %d، %f، %s، إلخ، لإدراج القيم في السلاسل النصية.

تنسيق الأرقام — إدراج القيم والتعبيرات في سلسلة نصية.

  • %d — تنسيق الأعداد الصحيحة.

  • %.xf — يحدد عدد المنازل العشرية التي سيتم عرضها للأعداد العشرية.

  • %x — يقوم بتنسيق رقم كنظام سداسي عشري.

  • %c — تنسيق الأحرف المفردة.

  • %s — تنسيق السلاسل النصية على نمط C.

دمج السلاسل النصية — دمج النصوص والقيم.

  • strcat — دمج السلاسل النصية على نمط C يدويًا.

التحقق من وجود أجزاء نصية فرعية — اختبار وجود النص أو موضعه.

  • strstr — يجد سلسلة فرعية داخل سلسلة نصية.

تسلسلات الهروب — تنسيق الإخراج باستخدام الأحرف الخاصة.

  • \n — يضيف فاصل أسطر (سطر جديد).

تنسيق الأرقام#

تستخدم لغة C++ محددات التنسيق للتحكم في كيفية ظهور الأرقام وأنواع البيانات الأخرى في السلاسل النصية.

Integers#

يقوم بتنسيق قيم الأعداد الصحيحة باستخدام مُحدد التنسيق %d.

Format specifiers
%d

Parameters

لا يحتوي مُحدد التنسيق هذا على معلمات.

Return Values

يقوم بتنسيق قيمة العدد الصحيح كعدد صحيح في السلسلة النصية.

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#

يتحكم في عدد المنازل العشرية التي يتم عرضها في رقم الفاصلة العائمة باستخدام مُحدد التنسيق %.xf.

Format specifiers
%.xf

Parameters

المعلمة

يكتب

وصف

x

int

عدد المنازل العشرية المراد عرضها.

Return Values

يقوم بتنسيق قيمة الفاصلة العائمة بعدد المنازل العشرية المحدد.

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

Hexadecimal#

يحول الأرقام إلى تمثيل سداسي عشري باستخدام %x (أحرف صغيرة) أو %X (أحرف كبيرة).

Format specifiers

1 — يقوم بتنسيق الأرقام كأحرف سداسية عشرية صغيرة.

%x

2 — يقوم بتنسيق الأرقام كأحرف سداسية عشرية كبيرة.

%X

Parameters

لا يحتوي مُحدد التنسيق هذا على معلمات.

Return Values

يقوم بتنسيق قيمة العدد الصحيح كسلسلة سداسية عشرية.

Examples
// Convert 255 to hexadecimal
int number = 255;

// Display hexadecimals 
Brain.Screen.print("Hex: %x", number);

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

Characters#

يقوم بتنسيق الأحرف المفردة باستخدام مُحدد التنسيق %c.

Format specifiers
%c

Parameters

لا يحتوي مُحدد التنسيق هذا على معلمات.

Return Values

يقوم بتنسيق قيمة الحرف كحرف واحد.

Examples
char letter = 'A';

// Display a single character variable
Brain.Screen.print("Letter: %c", letter);

Strings#

يقوم بتنسيق السلاسل النصية على نمط لغة C (مصفوفات الأحرف) باستخدام مُحدد التنسيق %s.

Format specifiers
%s

Parameters

لا يحتوي مُحدد التنسيق هذا على معلمات.

Return Values

يقوم بتنسيق قيمة السلسلة كنص.

Examples
char message[] = "V5";

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

دمج الأوتار#

يجمع هذا الأمر سلسلتين نصيتين معًا باستخدام الدالة strcat.

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

Parameters

المعلمة

يكتب

وصف

string1

char*

النص المراد إضافته. يجب أن يكون هناك مساحة كافية للنص الجديد.

string2

const char*

السلسلة التي تريد إضافتها.

Return Values

يُرجع مؤشرًا إلى السلسلة الناتجة (string1).

Notes
  • تأكد من وجود مساحة كافية في السلسلة النصية لاستيعاب الأحرف التي ستُضاف إليها. فإضافة أحرف إلى سلسلة نصية صغيرة جدًا قد يؤدي إلى الكتابة فوق متغيرات أخرى والتسبب في سلوك غير متوقع.

Examples
// Make sure the variable has enough space
// for all characters (set it to 20)
char message[20] = "Hello,";
strcat(message, " V5");

// Display the combined strings
Brain.Screen.print("%s", message);

التحقق من السلاسل الفرعية#

تُرجع هذه الدالة مؤشرًا إلى موضع أول ظهور لسلسلة نصية على نمط لغة C في سلسلة نصية أخرى باستخدام الدالة strstr .

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

Parameters

المعلمة

يكتب

وصف

str

const char*

مؤشر إلى السلسلة التي يتم البحث عنها.

substring

const char*

السلسلة المراد البحث عنها.

Return Values

يُرجع مؤشرًا إلى أول ظهور للسلسلة الفرعية، أو NULL إذا لم يتم العثور على السلسلة.

Examples
char message[] = "Hey everyone!";

// Display if "Hey" is in the variable
if (strstr(message, "Hey") != NULL) {
    Brain.Screen.print("Hello!");
}

تسلسلات الهروب#

تُستخدم تسلسلات الهروب كأحرف خاصة داخل السلاسل النصية لتنسيق مخرجات النصوص.

New Line#

ينقل النص إلى سطر جديد عند الطباعة باستخدام تسلسل الهروب \n.

Format specifiers
\n

Parameters

لا يحتوي تسلسل الهروب هذا على معلمات.

Return Values

يُدرج حرف سطر جديد في الناتج.

Notes
  • هذا يعمل فقط على وحدة التحكم. لن يتم إرسال النص إلى وحدة التحكم حتى يتم بدء سطر جديد.

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