strfromd(3)

الاسم
strfromd, strfromf, strfroml - تحويل قيمة فاصلة عائمة إلى سلسلة محارف

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <stdlib.h>

int strfromd(size_t n;
             char str[restrict n], size_t n,
             const char *restrict format, double fp);
int strfromf(size_t n;
             char str[restrict n], size_t n,
             const char *restrict format, float fp);
int strfroml(size_t n;
             char str[restrict n], size_t n,
             const char *restrict format, long double fp);

    متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

strfromd()، strfromf()، strfroml():
    __STDC_WANT_IEC_60559_BFP_EXT__

الوصف
تحوِّل هذه الدوال قيمة فاصلة عائمة، fp، إلى سلسلة محارف، str، بسلسلة format قابلة للتهيئة. يُخزَّن على الأكثر n من المحارف في str.

يُكتَب البايت الختامي الصفري ('\0') إذا وفقط إذا كان n كبيرًا كفاية، وإلا قُطعت السلسلة المكتوبة عند n من المحارف.

الدوال strfromd() و strfromf() و strfroml() مكافئة لـ

    snprintf(str, n, format, fp);

باستثناء سلسلة format.

  تنسيق سلسلة التنسيق
يجب أن تبدأ سلسلة format بالحرف '%'. يتبع ذلك دقة اختيارية تبدأ بحرف النقطة (.)، يليها عدد صحيح عشري اختياري. إذا لم يُحدَّد عدد صحيح بعد حرف النقطة، تُستخدم دقة صفر. أخيرًا، يجب أن تحتوي سلسلة التنسيق على أحد محددات التحويل a أو A أو e أو E أو f أو F أو g أو G.

يُطبَّق محدد التحويل بناءً على نوع الفاصلة العائمة المشار إليه بلاحقة الدالة. لذلك، على عكس snprintf()، لا تحتوي سلسلة التنسيق على حرف معدِّل للطول. انظر snprintf(3) للحصول على وصف مفصل لمحددات التحويل هذه.

يتوافق التنفيذ مع معيار C99 بشأن تحويل قيم NaN واللانهاية:

    إذا كان fp هو NaN أو +NaN أو -NaN، وكان f (أو a أو e أو g) هو محدد التحويل، فالتحويل يكون إلى "nan" أو "nan" أو "-nan" على التوالي. إذا كان F (أو A أو E أو G) هو محدد التحويل، فالتحويل يكون إلى "NAN" أو "-NAN".

    وبالمثل إذا كان fp لانهاية، يُحوَّل إلى [-]inf أو [-]INF.

سلسلة format مشوهة تؤدي إلى سلوك غير محدد.

قيمة الإرجاع
تُرجع الدوال strfromd() و strfromf() و strfroml() عدد المحارف التي كان سيُكتَب في str لو كان n لديه مساحة كافية، دون احتساب البايت الختامي الصفري. وبالتالي، قيمة إرجاع تساوي n أو أكبر تعني أن المخرجات قُطعت.

السمات
لشرح المصطلحات المستخدمة في هذا القسم، انظر attributes(7) وقسم POSIX Safety Concepts في دليل مكتبة GNU C.

الواجهة | السمة | القيمة
strfromd(), strfromf(), strfroml() | سلامة الخيوط | المنطقة (locale) آمنة لتعدد المسالك (MT-Safe)
 | أمان الإشارة غير المتزامنة | AS-Unsafe heap
 | أمان الإلغاء غير المتزامن | AC-Unsafe mem

ملاحظة: هذه السمات أولية.

المعايير
ISO/IEC TS 18661-1.

الإصدارات

strfromd()
strfromf()
strfroml()
    glibc 2.25.

ملاحظات
تراعي هذه الدوال فئة LC_NUMERIC من الإعدادات المحلية الحالية.

أمثلة
لتحويل القيمة 12.1 كنوع عائم إلى سلسلة محارف باستخدام الترميز العشري، مما ينتج "12.100000":

    #define __STDC_WANT_IEC_60559_BFP_EXT__
    #include <stdlib.h>
    int ssize = 10;
    char s[ssize];
    strfromf(s, ssize, "%f", 12.1);

لتحويل القيمة 12.3456 كنوع عائم إلى سلسلة محارف باستخدام الترميز العشري برقمين من الدقة، مما ينتج "12.35":

    #define __STDC_WANT_IEC_60559_BFP_EXT__
    #include <stdlib.h>
    int ssize = 10;
    char s[ssize];
    strfromf(s, ssize, "%.2f", 12.3456);

لتحويل القيمة 12.345e19 كنوع مزدوج إلى سلسلة محارف باستخدام الترميز العلمي بدون أرقام دقة، مما ينتج "1E+20":

    #define __STDC_WANT_IEC_60559_BFP_EXT__
    #include <stdlib.h>
    int ssize = 10;
    char s[ssize];
    strfromd(s, ssize, "%.E", 12.345e19);

انظر أيضًا
atof(3), snprintf(3), strtod(3)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.