تحويل سلسلة إلى رقم مهمة شائعة جدا في ج البرمجة. قد يكون مطلوبا ، على سبيل المثال ، عند قراءة البيانات من ملف أو عند معالجة إدخال المستخدم. ال لغة ج يوفر عدة طرق لتحويل سلسلة إلى رقم ، بما في ذلك أتوي(), أتوف() و سترتول() وظائف. كل من هذه الوظائف لها خصائصها وتطبيقاتها الخاصة ، لذلك من المهم اختيار الطريقة الأنسب لمهمة محددة.
وظيفة أتوي () هي أبسط طريقة لتحويل سلسلة إلى عدد صحيح. فإنه يأخذ سلسلة كوسيطة وإرجاع عدد صحيح المقابلة. إذا كانت هناك أحرف غير صالحة في السلسلة ، فإن الوظيفة تتجاهلها وتعيد الحد الأقصى لعدد صحيح ممكن. على سبيل المثال ، إذا كانت السلسلة تحتوي على "123 أبك" ، فإن وظيفة أتوي() ترجع الرقم 123.
تم تصميم وظيفة أتوف () لتحويل سلسلة إلى رقم النقطة العائمة. وهو يعمل بطريقة مماثلة إلى وظيفة أتوي () ، ولكن إرجاع قيمة الفاصلة العائمة. إذا كانت الأحرف غير الصالحة موجودة في السلسلة ، فإن الوظيفة تتجاهلها وتعيد القيمة بأقصى دقة ممكنة. على سبيل المثال ، سيتم تحويل السلسلة "3.14 أبك" إلى الرقم 3.14.
طريقة سترتول () هي طريقة أكثر تعقيدا وقوة لتحويل سلسلة إلى عدد صحيح. يسمح لك بتحديد قاعدة نظام الأرقام (على سبيل المثال ، 10 لنظام الأرقام العشري) والتعامل مع الأخطاء المتعلقة بتجاوز الرقم. تقوم دالة سترتول() بإرجاع الرقم المحول والمؤشر إلى الحرف الأول بعد الرقم في السلسلة. على سبيل المثال:
يعتمد اختيار طريقة تحويل سلسلة إلى رقم على المتطلبات والشروط المحددة للمهمة. قد تكون بعض الطرق أكثر فعالية أو ملاءمة في مواقف معينة. من المهم أن تكون على دراية بالمدخلات الخاطئة المحتملة واتخاذ التدابير المناسبة للتعامل معها.
- كيفية تحويل سلسلة إلى رقم في ج?
- باستخدام أتوي()
- وظيفة باستخدام وظيفة أتوف ()
- باستخدام وظيفة سترتول()
- طرق مختلفة لتحويل سلسلة إلى رقم في لغة ج
- باستخدام وظيفة أتوي () لتحويل سلسلة إلى عدد صحيح
- باستخدام وظائف أتوف () و سترتود () لتحويل سلسلة إلى رقم الفاصلة العائمة
- باستخدام وظيفة سترتول () لتحويل سلسلة إلى عدد صحيح طويل
- تحديد دالة مخصصة لتحويل سلسلة إلى رقم
- سؤال وجواب
- كيف يمكنني تحويل سلسلة إلى رقم في لغة البرمجة ج?
- كيف يمكنني تحويل سلسلة إلى رقم الفاصلة العائمة في ج?
- كيف يمكنني تحويل سلسلة مع عدد عشري في ج?
كيف يمكنني تحويل سلسلة إلى رقم في ج?
في كثير من الأحيان ، عند تطوير البرامج بلغة سي ، يصبح من الضروري تحويل سلسلة إلى قيمة رقمية. على سبيل المثال ، إذا كنت بحاجة إلى إجراء عمليات حسابية بأرقام يدخلها المستخدم أو معالجة البيانات من ملف. في اللغة ج ، هناك العديد من الوظائف والأساليب لهذا الغرض. دعونا ننظر إلى بعض منهم.
باستخدام وظيفة أتوي ()
يسمح لك بتحويل سلسلة إلى قيمة عدد صحيح. فإنه يقبل سلسلة كمدخل (مؤشر إلى مجموعة من الأحرف) وإرجاع عدد صحيح.
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
شار شارع [] = "12345";
عدد الباحث = أتوي (شارع);
برينتف ("الرقم: ٪ د
"،رقم);
العودة 0;
}
وظيفة.
باستخدام وظيفة أتوف ()
يسمح لك بتحويل سلسلة إلى رقم فاصلة عائمة. فإنه يقبل سلسلة كمدخل (مؤشر إلى مجموعة من الأحرف) وإرجاع رقم الفاصلة العائمة.
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
شار شارع [] = "3.14";
عدد مزدوج = أتوف (شارع);
برينتف ("الرقم: ٪ و
"،رقم);
العودة 0;
}
وظيفة.
باستخدام وظيفة سترتول()
.
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
شار شارع [] = "2147483647";
شار * ع;
عدد طويل = سترتول (شارع ، & ف ، 10);
برينتف ("الرقم: ٪ دينار
"،رقم);
العودة 0;
}
وظيفة.
هذه ليست سوى بعض من الوظائف والأساليب التي تسمح لك لتحويل سلسلة إلى رقم في اللغة ج. اعتمادا على نوع الرقم والدقة المطلوبة ، قد تكون هناك خيارات أخرى. يوصى بالرجوع إلى وثائق اللغة ج للحصول على معلومات أكثر تفصيلا حول وظائف وطرق محددة.
طرق مختلفة لتحويل سلسلة إلى رقم في لغة ج
في لغة البرمجة ج ، هناك عدة طرق لتحويل سلسلة إلى رقم. في هذه المقالة ، سنلقي نظرة على بعضها.
1. وظيفة أتوي ()
. مثال على استخدام الوظيفة:
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
شار شارع [] = "12345";
عدد الأسطوانات = أتوي (شارع);
برينتف ("٪د
"،الأسطوانات) ؛ / / الإخراج: 12345
العودة 0;
}
2. أتوف () وظيفة
. مثال على استخدام الوظيفة:
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
شار شارع [] = "3.14";
الأسطوانات المزدوجة = أتوف (شارع);
برينتف ("٪لف
"،الأسطوانات) ؛ / / الإخراج: 3.140000
العودة 0;
}
3. سترتول()
. مثال على استخدام الوظيفة:
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
شار شارع [] = "12345";
شار * إندبتر;
عدد الأسطوانات الطويلة = سترتول(ستر ، &إندبتر ، 10);
برينتف ("٪دينار
"،الأسطوانات) ؛ / / الإخراج: 12345
العودة 0;
}
في هذه المقالة ، تم تقديم بعض طرق تحويل سلسلة إلى رقم بلغة ج فقط. هناك وظائف ونهج أخرى ، لكن لم يتم النظر فيها في هذه المقالة.
باستخدام وظيفة أتوي () لتحويل سلسلة إلى عدد صحيح
في لغة البرمجة ج ، هناك وظيفة أتوي () التي تسمح لك لتحويل سلسلة إلى عدد صحيح. توجد وظيفة أتوي() في مكتبة سي القياسية وتقوم بالتحويل التالي:
- يتخطى المسافات الأولية في السلسلة.
- يقرأ سلسلة من الأحرف ، وهو عدد صحيح ، حتى الحرف الأول ، وهو ليس رقما. يمكن أن يكون تسلسل الأرقام سالبا ، وفي هذه الحالة ستكون النتيجة رقما سالبا.
بعد التحويل ، تقوم دالة أتوي() بإرجاع العدد الصحيح الناتج.
هنا مثال على استخدام وظيفة أتوي ():
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
كونست شار * شارع = "12345";
عدد الباحث = الأمراض المنقولة جنسيا:: أتوي (شارع);
الأمراض المنقولة جنسيا:: كوت < < "عدد:" < < عدد < < الأمراض المنقولة جنسيا:: إندل;
العودة 0;
}
في هذا المثال ، وظيفة أتوي() تحويل سلسلة "12345" في عدد صحيح 12345 ، والتي يتم عرضها بعد ذلك على الشاشة.
يمكن أيضا استخدام وظيفة أتوي () لتحويل السلاسل التي تحتوي على أحرف أخرى ، ولكنها ستحول الجزء المركب فقط حتى يصل إلى الحرف الأول ، وهو ليس رقما.
من المهم ملاحظة أن وظيفة أتوي () لا تتحقق من أخطاء الإدخال وتتجاهل ببساطة أي أحرف غير صحيحة. إذا تعذر تحويل السلسلة إلى عدد صحيح ، ترجع الدالة 0.
وهكذا ، وذلك باستخدام وظيفة أتوي () هو وسيلة مريحة لتحويل سلسلة إلى عدد صحيح في ج.
باستخدام وظائف أتوف () و سترتود () لتحويل سلسلة إلى رقم الفاصلة العائمة
في ج ، هناك أتوف() و سترتود () الوظائف التي تسمح لك لتحويل السلاسل إلى أرقام الفاصلة العائمة. تؤدي كلتا الوظيفتين مهمة مماثلة ، ولكن لديهما بعض الاختلافات في الاستخدام والدقة.
يتم استخدام وظيفة أتوف () لتحويل سلسلة إلى رقم نقطة عائمة مزدوجة. فإنه يأخذ سلسلة كوسيطة وإرجاع القيمة الرقمية المقابلة. مثال على استخدام وظيفة أتوف ():
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
شار شارع [] = "3.14";
الأسطوانات المزدوجة = أتوف (شارع);
برينتف ("النتيجة: ٪ و
"،الأسطوانات);
العودة 0;
}
في هذا المثال ، تقوم دالة أتوف() بتحويل السلسلة "3.14" إلى رقم الفاصلة العائمة 3.14 وتعيينها إلى الأسطوانات المتغيرة. ثم يتم عرض الرقم باستخدام وظيفة برينتف ().
وظيفة سترتود () أيضا تحويل سلسلة إلى رقم نقطة عائمة مزدوجة ، ولكن لديها ميزات إضافية. فإنه يأخذ المعلمة الثانية ، مؤشر إلى مؤشر شار ، والذي يسمح لك للحصول على موقف في السلسلة حيث حدث خطأ التحويل. مثال على استخدام وظيفة سترتود() :
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
شار شارع [] = "3.14";
شار * نهاية;
الأسطوانات المزدوجة = سترتود (شارع ، ونهاية);
إذا (نهاية == شارع) {
برينتف ("حدث خطأ عند تحويل سلسلة إلى رقم!
");
} آخر {
برينتف ("النتيجة: ٪ و
"،الأسطوانات);
}
العودة 0;
}
في هذا المثال ، تقوم وظيفة سترتود() أيضا بتحويل السلسلة "3.14" إلى رقم الفاصلة العائمة 3.14 وتعيينها إلى الأسطوانات المتغيرة. ومع ذلك ، في هذه الحالة ، تتحقق الوظيفة أيضا من أن قيمة مؤشر النهاية لا تساوي سلسلة السلسلة الأصلية. إذا كانت قيمة المؤشر تساوي السلسلة الأصلية ، فهذا يعني أنه حدث خطأ أثناء التحويل ، ويتم عرض رسالة مقابلة.
يمكن لكل من وظائف أتوف () وسترتود () معالجة السلاسل بأرقام ممثلة بتنسيقات مختلفة ، بما في ذلك الترميز العلمي ، على سبيل المثال: "3.14 هـ+2". ومع ذلك ، تجدر الإشارة إلى أنها لا تتعامل مع التعريب والفواصل الألف.
من المهم ملاحظة أن وظائف أتوف () و سترتود () قد ترجع نتائج غير صحيحة إذا كانت سلسلة الإدخال لا تتطابق مع تنسيق رقم الفاصلة العائمة المتوقع.
باستخدام وظائف أتوف () و سترتود () يجعلها مريحة لتحويل السلاسل إلى أرقام الفاصلة العائمة في اللغة ج.
باستخدام وظيفة سترتول () لتحويل سلسلة إلى عدد صحيح طويل
وظيفة سترتول () هي واحدة من وظائف المكتبة القياسية للغة البرمجة ج ، والذي يسمح لك لتحويل سلسلة إلى عدد صحيح طويل.
يبدو النموذج الأولي للوظيفة كما يلي:
لونغ إنت سترتول (كونست شار * ستر ، شار * * إندبتر ، قاعدة إنت);
وسيطات الوظيفة:
- شارع هو السلسلة المراد تحويلها.
- إندبتر هو مؤشر إلى مؤشر إلى حرف حيث تقوم الدالة بتخزين عنوان الحرف الأول الذي ليس جزءا من رقم.
- القاعدة هي قاعدة نظام رقم السلسلة. القيم الممكنة: 2-36 أو 0. إذا كانت القيمة 0 ، فسيتم تحديد قاعدة نظام الأرقام بناء على بادئة السلسلة (على سبيل المثال ، إذا بدأت السلسلة بـ "0 مرة" ، فستكون القاعدة 16).
وظيفة سترتول() بإرجاع عدد تحويلها من نوع كثافة العمليات طويلة. في حالة وجود خطأ ، فإنه يعود 0.
فيما يلي مثال على استخدام وظيفة سترتول() :
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
شار شارع [] = "12345";
شار * إندبتر;
عدد الأسطوانات الطويلة = سترتول(ستر ، &إندبتر ، 10);
إذا (نهاية== شارع) {
برينتف ("خطأ: لا يمكن تحويل السلسلة.
");
عودة 1;
}
برينتف ("الرقم المحول: ٪ دينار
"،الأسطوانات);
العودة 0;
}
نتيجة تنفيذ البرنامج:
الرقم المحول: 12345
في هذا المثال ، سنقوم بتحويل السلسلة "12345" إلى عدد صحيح طويل باستخدام وظيفة سترتول (). نتيجة لذلك ، نحصل على الرقم 12345.
وبالتالي ، فإن استخدام وظيفة سترتول () في لغة البرمجة سي يسمح لك بتحويل السلاسل إلى أعداد صحيحة طويلة واستخدامها بشكل أكبر في البرنامج.
تحديد دالة مخصصة لتحويل سلسلة إلى رقم
لتحويل سلسلة إلى رقم باستخدام لغة ج ، يمكنك تحديد الوظيفة الخاصة بك التي ستقوم بإجراء التحويلات اللازمة. فيما يلي مثال على هذه الوظيفة:
# تشمل
# تشمل
(شار * شارع) {
كثافة العمليات النتيجة = 0;
إنت تسجيل = 1;
// التحقق من وجود علامة
إذا (*شارع == '-') {
علامة = -1;
شارع st;
}
// تحويل سلسلة إلى رقم
بينما (*شارع) {
الباحث أرقام = * شارع - '0';
النتيجة = النتيجة * 10 + أرقام;
شارع st;
}
// تطبيق العلامة
النتيجة * = علامة;
نتيجة الإرجاع;
}
كثافة العمليات الرئيسية () {
شار شارع [] = "12345";
إنت نوم = سترينغ_إلى(ستر);
برينتف ("الرقم: ٪ د" ، الأسطوانات);
العودة 0;
}
في هذا المثال ، يتم تعريف دالة السلسلة ، والتي تأخذ مؤشرا إلى سلسلة وتعيد عددا صحيحا. داخل الوظيفة ، يتم إجراء فحص لوجود علامة والتحويل المتسلسل لكل حرف من السلسلة إلى رقم. ثم يتم ضرب النتيجة في العلامة وإعادتها.
تحدد الوظيفة الرئيسية سلسلة شارع تحتوي على تمثيل لرقم ، ثم يتم استدعاء دالة السلسلة لتحويل السلسلة إلى رقم. يتم عرض النتيجة على الشاشة.
سؤال وجواب
كيف يمكنني تحويل سلسلة إلى رقم في لغة البرمجة ج?
في ال ج لغة البرمجة ، يمكن تحويل سلسلة إلى رقم باستخدام أتوي () وظيفة. تأخذ هذه الوظيفة سلسلة كوسيطة وتعيد العدد الصحيح المقابل. على سبيل المثال:
كيف يمكنني تحويل سلسلة إلى رقم الفاصلة العائمة في ج?
في ال ج لغة البرمجة ، يمكن تحويل سلسلة إلى رقم فاصلة عائمة باستخدام أتوف () وظيفة. تأخذ هذه الوظيفة سلسلة كوسيطة وتعيد رقم النقطة العائمة المقابل. على سبيل المثال:
كيف يمكنني تحويل سلسلة مع عدد عشري في ج?
في ال ج لغة البرمجة ، يمكن تحويل سلسلة إلى رقم سداسي عشري باستخدام سترتول () وظيفة. هذه الوظيفة تأخذ سلسلة كوسيطة ، فضلا عن مؤشر إلى متغير من نوع إنت طويلة ، والتي سيتم كتابة نتيجة التحويل. بالإضافة إلى ذلك ، تأخذ الوظيفة وسيطة ثانية ، والتي تشير إلى قاعدة نظام الأرقام. في حالة الرقم السداسي العشري ، ستكون هذه هي القيمة 16. على سبيل المثال: