'सी' के लिए [s] प्रिंटफ का वैकल्पिक (अधिक जटिल) उपयोग है जिसे कस्टम पैडिंग के लिए वांछित होने पर किसी भी मॉलोक () या पूर्व-स्वरूपण की आवश्यकता नहीं होती है।
यह चाल% s के लिए '*' लंबाई के विनिर्देशक (न्यूनतम और अधिकतम) का उपयोग करना है, साथ ही अधिकतम संभावित लंबाई के लिए आपके पैडिंग चरित्र से भरा एक स्ट्रिंग है।
int targetStrLen = 10;
const char *myString="Monkey";
const char *padding="#####################################################";
int padLen = targetStrLen - strlen(myString);
if(padLen < 0) padLen = 0;
printf("[%*.*s%s]", padLen, padLen, padding, myString);
printf("[%s%*.*s]", myString, padLen, padLen, padding);
"% *। * S" को आपके "% s" के पहले या बाद में LEFT या RIGHT पैडिंग की इच्छा के आधार पर रखा जा सकता है।
[####Monkey] <-- Left padded, "%*.*s%s"
[Monkey####] <-- Right padded, "%s%*.*s"
मैंने पाया कि PHP प्रिंटफ ( यहाँ ) % s फॉर्मेट के भीतर अपने कस्टम पैडिंग कैरेक्टर के बाद सिंगल कोटे (') का उपयोग करके एक कस्टम पैडिंग कैरेक्टर देने की क्षमता का समर्थन करता है ।
printf("[%'#10s]\n", $s); // use the custom padding character '#'
उत्पादन:
[####monkey]