در چند آموزش قبلی به QString پرداختیم که با مثالهایی از آن همراه بود. در این قسمت از آموزش ++C/Qt هم به معرفی بیشتر نکاتی در کار با QString خواهیم پرداخت در مثال زیر به بررسی نحوه مقایسه دو رشته متنی میپردازیم که توسط متدQString:: compare () قابل انجام است، اگر دو متغیر رشتهای را به دستور بالا بدهیم یک خروجی Integer خواهد داشت که این متغیر عدد صحیح اگر زیر عدد ۰ بود به این معنی است که رشته اول از دوم کوچکتر است اگر ۰ برگرداند به معنای مساوی بودن دو رشته خواهد بود و اگر خروجی برگردانده شده بزرگتر از ۰ بود میتوان نتیجه گرفت که رشته اول از رشته دوم بزرگتر است. تمامی مقایسهها به صورت بررسی ارزش تکتک کاراکترها با هم از سمت چپ خواهد بود که در این بررسی کاراکتر A بزرگتر از کاراکتر z خواهد بود.
#include <QTextStream> #define STR_EQUAL 0 int main(void) { QTextStream out(stdout); QString a = "Rain"; QString b = "rain"; QString c = "rainn"; if (QString::compare(a, b) == STR_EQUAL) { out << "a, b are equal" << endl; } else { out << "a, b are not equal" << endl; } out << "In case insensitive comparison:" << endl; if (QString::compare(a, b, Qt::CaseInsensitive) == STR_EQUAL) { out << "a, b are equal" << endl; } else { out << "a, b are not equal" << endl; } if (QString::compare(b, c) == STR_EQUAL) { out << "b, c are equal" << endl; } else { out << "b, c are not equal" << endl; } c.chop(1); out << "After removing the new line character" << endl; if (QString::compare(b, c) == STR_EQUAL) { out << "b, c are equal" << endl; } else { out << "b, c are not equal" << endl; } return 0; }
در مثال بالا تمامی شرایط بررسی شده است در دستورات بالا حساسیت به حروف کوچک بزرگ مشخص شده است. برای بررسی بهتر متغیر ی تعریف شده است که معادل ۰ است و در کدها به کار گرفته شده است. خروجی کد بالا به صورت زیر خواهد بود:
$ ./comparing a, b are not equal In case insensitive comparison: a, b are equal b, c are not equal After removing the new line character b, c are equal
برای تبدیل کردن یک متغیر رشتهای به دیگر متغیرها از قبیل float، int و … میتوان از دستورات زیر استفاده کرد:
کار کرد | متد |
از String به Long | toLong() |
از String به Float | toFloat() |
از String به Integer | toInt() |
تبدیل انواع نتغیر عددی به String | setnum() |
مثال: در دستور زیر از متدهای بالا استفاده شده است.
#include <QTextStream> int main(void) { QTextStream out(stdout); QString s1 = "12"; QString s2 = "15"; QString s3, s4; out << s1.toInt() + s2.toInt() << endl; int n1 = 30; int n2 = 40; out << s3.setNum(n1) + s4.setNum(n2) << endl; return 0; }
در مثال بالا با استفاده از toInt دو متغیر رشتهای S۱ و S۲ را به عدد صحیح تبدیل کرده و به خروجی اراسل داشته است و در بخش بعدی یک عدد Integer را با setNum به String تبدیل کرده است. که خروجی مثال بالا نیز به صورت زیر خواهد بود:
$ ./converts 27 3040
موفق باشید.