एक विशेष प्रारूप स्ट्रिंग बनाने की कोई आवश्यकता नहीं है। printf
आपको प्रारूप पैरामीटर में सटीकता के रूप में .*
का उपयोग करते हुए पैरामीटर (जो मान से पहले) का उपयोग करके सटीक निर्दिष्ट करने की अनुमति देता है।
उदाहरण के लिए:
printf ("%d %.*s", number, SIZE, letters);
नोट: वहाँ चौड़ाई के बीच एक अंतर (जो कम से कम क्षेत्र चौड़ाई है) और सटीक (जो वर्णों की अधिकतम संख्या देता है मुद्रित करने के लिए) है। %*s
चौड़ाई निर्दिष्ट करता है, %.s
परिशुद्धता निर्दिष्ट करता है। (और आप भी %*.*
उपयोग कर सकते हैं, लेकिन फिर आप दो पैरामीटर, परिशुद्धता के लिए चौड़ाई एक के लिए एक की जरूरत है) (लिनक्स के तहत man 3 printf
)
भी देखें printf आदमी पेज और विशेष रूप से वर्गों क्षेत्र चौड़ाई और परिशुद्धता पर:
एक दशमलव अंकों स्ट्रिंग एक लिख सकते हैं के बजाय
"*" या "* मी $" (कुछ दशमलव पूर्णांक मीटर के लिए) निर्दिष्ट करने के लिए कि परिशुद्धता अगले तर्क में दी गई है, या एम-वें बहस में , क्रमशः, जो प्रकार int होना चाहिए।
आप एक प्रारूप स्ट्रिंग का निर्माण कर रहे हैं। लेकिन आपको 'sprintf' द्वारा' fmt_string' पर लौटाई गई स्ट्रिंग असाइन करनी चाहिए और 'fmt_string' पैरामीटर सूची में नहीं होना चाहिए। – pavium
क्या कोई विशेष कारण है कि आप कहते हैं कि 'अक्षरों' को निरस्त नहीं किया जाएगा? –
@AndrewKeeton यह एक बड़े डेटासेट के साथ एक खोज समस्या के लिए था जहां मैं शून्य पात्रों को रखने के लिए जगह बर्दाश्त नहीं कर सका। –