মুদ্রণ সি এর মধ্যে 0 এর শীর্ষস্থানীয়?


344

আমি 0, 0 পিনকোডের জন্য 01001 এর মতো মুদ্রণের জন্য একটি ভাল উপায় সন্ধান করার চেষ্টা করছি। সংখ্যাটি 1001 হিসাবে সংরক্ষণ করা হবে, এটি করার একটি ভাল উপায় কী?

আমি কেস স্টেটমেন্টগুলি ব্যবহার করার কথা ভাবলাম / যদি সংখ্যাটি কতগুলি সংখ্যা হয় তা বের করে তা মুদ্রণের জন্য অতিরিক্ত 0 এর সাথে একটি চর অ্যারে রূপান্তরিত করে তবে আমি সাহায্য করতে পারি না তবে মনে করি এটি করার কোনও উপায় থাকতে পারে মুদ্রণকারী বিন্যাস সিনট্যাক্স যা আমাকে সরিয়ে দিচ্ছে।

উত্তর:


567
printf("%05d", zipCode);

0ইঙ্গিত কি আপনার সাথে প্যাডিং এবং করছে 5পূর্ণসংখ্যা সংখ্যা দৈর্ঘ্য শো। উদাহরণস্বরূপ আপনি যদি "%02d"(তারিখের জন্য দরকারী) ব্যবহার করেন তবে এটি কেবলমাত্র কলামগুলিতে সংখ্যার জন্য শূন্যকে প্যাড করবে 06instead ( পরিবর্তে 6)। উদাহরণ 2, "%03d"টিপুন কলামে একটি সংখ্যার জন্য 2 জিরো এবং দশকের কলামে একটি সংখ্যার জন্য 1 শূন্য প্যাড করবে। অর্থাত। (7 নম্বর প্যাডেড 007এবং 17 নম্বর প্যাডেড 017)।


237
সংখ্যা হিসাবে জিপকোড সংরক্ষণ করবেন না দয়া করে। কিছু দেশের চিঠিগুলি তাদের জিপকোডে রয়েছে।
সেকেন্ড

1
আপনার ক্ষেত্রে, এটি যথেষ্ট হবে। কীভাবে একজনের অজানা দৈর্ঘ্যের পূর্ণসংখ্যায় অগ্রণী জিরো থাকতে পারে?
ডমিনিক মোটুকা

চূড়ান্ত প্যাডযুক্ত স্ট্রিংয়ের সর্বোচ্চ দৈর্ঘ্য আপনার জানা দরকার। বিকল্পভাবে, আপনি যদি সর্বদা 5 টি শীর্ষস্থানীয় শূন্য চান তবে "00000" + পূর্ণসংখ্যা. টো_সগুলি। ইত্যাদি
মেলাম্বি

160

সঠিক সমাধানটি একটি STRING হিসাবে ডাটাবেজে জিপ কোড সংরক্ষণ করা। এটি একটি সংখ্যার মতো দেখতে লাগলেও তা নয় isn't এটি একটি কোড, যেখানে প্রতিটি অংশের অর্থ রয়েছে।

একটি সংখ্যা হল এমন একটি জিনিস যা আপনি গাণিতিক করেন। একটি জিপ কোড এটি নয়।


32
ইয়া। আপনার পর্যবেক্ষণ একেবারে সঠিক। এটাই আমি করি। তবে প্রশ্ন জিজ্ঞাসা করা ব্যক্তি সম্ভবত প্রোডাক্ট কোডের পরিবর্তে হোমওয়ার্ক নিয়ে কাজ করার চেষ্টা করছেন। উত্তরটি প্রশ্ন জিজ্ঞাসা করা ব্যক্তির উপযুক্ত করা দরকার।
এভিলটিচ

15
আমি অনুমান করি যে আমার সাথে পরিচয় ছিল না এমন ভাষাতে আমি কীভাবে শীর্ষস্থানীয় এবং অনুবর্তনীয় চরিত্রগুলি করতে পারি তা দেখার জন্য আমি এটি আরও সুনির্দিষ্টভাবে পুনরায় প্রকাশ করা উচিত ছিল। আমি ভবিষ্যতে স্বেচ্ছাচারী উদাহরণগুলির সাথে আরও সতর্ক থাকব!
zxcv

3
যুক্তরাজ্যের মতো অন্যান্য দেশগুলির জিপ কোডগুলিতে চিঠি রয়েছে
jjxtra


16

জিপকোড একটি উচ্চ স্থানীয়করণ ক্ষেত্র, অনেক দেশের পোস্টকোডে অক্ষর রয়েছে, যেমন, যুক্তরাজ্য, কানাডা। সুতরাং এই উদাহরণে আপনার স্ট্রিং / বার্চার ক্ষেত্রটি সংরক্ষণ করতে ব্যবহার করা উচিত যদি আপনি যে কোনও মুহুর্তে শিপিং বা অন্য দেশ থেকে ব্যবহারকারী / গ্রাহক / ক্লায়েন্ট / ইত্যাদি পাচ্ছেন।

তবে সাধারণ ক্ষেত্রে আপনার প্রস্তাবিত উত্তর ( printf("%05d", number);) ব্যবহার করা উচিত ।


16

আপনি যদি একটি * এনআইএক্স মেশিনে থাকেন:

man 3 printf

এটি ম্যানুয়াল পৃষ্ঠা প্রদর্শন করবে, এর মতো:

0 মানটি শূন্য প্যাড করা উচিত। ডি, আই, ও, ইউ, এক্স, এক্স, এ, এ, ই, ই, ফ, এফ, জি, এবং জি রূপান্তরগুলির জন্য, রূপান্তরিত মানটি ফাঁকা পরিবর্তে জিরো দিয়ে বামে প্যাড করা হয়। যদি 0 এবং - পতাকা উভয়ই প্রদর্শিত হয়, তবে 0 টি পতাকা অগ্রাহ্য করা হবে। যদি কোনও সংখ্যার রূপান্তর (d, i, o, u, x, এবং X) দিয়ে যথার্থতা দেওয়া হয় তবে 0 পতাকাটিকে অগ্রাহ্য করা হবে। অন্যান্য রূপান্তরগুলির জন্য, আচরণটি সংজ্ঞায়িত।

যদিও প্রশ্নটি সি এর জন্য, এই পৃষ্ঠাটি সহায়ক হতে পারে।


1
3 নম্বর কেন প্রয়োজন?
eri0o

4
@ অ্যাল্রিক আপনি যদি আদেশটিকে একটি সংখ্যাসূচক যুক্তি দেন তবে manএটি এটি নির্দিষ্ট অংশে সংকুচিত করে। এটি না করে, আপনি printfসি ফাংশনের পরিবর্তে শেল কমান্ডের ম্যান পৃষ্ঠাটি পাবেন ।
পল টমবলিন

14
sprintf(mystring, "%05d", myInt);

এখানে, "05" বলছে "শীর্ষস্থানীয় শূন্যগুলির সাথে 5 সংখ্যা ব্যবহার করুন"।


6

printf বিভিন্ন ফর্ম্যাটিং বিকল্পের অনুমতি দেয়।

উদা:

printf("leading zeros %05d", 123);

3

আপনি যদি একটি জিপ কোডটিকে একটি অক্ষরের স্ট্রিং হিসাবে সংরক্ষণ করেন তবে এটি কোনও সংখ্যা নয়, যা কোনও নয়, আপনি নিজেকে সমস্যার (একটি দীর্ঘ মেয়াদী) সংরক্ষণ করবেন will


কেবলমাত্র যদি কেউ বোঝায় যে কীভাবে একটি চর অ্যারে শূন্য-প্যাড করা যায়। এমনকি এমন একটি সমাধান রয়েছে যা চরিত্রের অ্যারেটিকে আরম্ভ করতে এবং তারপরে% 05d ব্যবহার করতে atoi () ব্যবহার করে। আশা করি এটিই একমাত্র সমাধান নয়।
নিকো

0

আরও নমনীয় .. এখানে স্থির প্রস্থ এবং স্পেস-প্যাডিং সহ ডান-ন্যায়সঙ্গত সংখ্যার সারি মুদ্রণের একটি উদাহরণ রয়েছে।

//---- Header
std::string getFmt ( int wid, long val )
{  
  char buf[64];
  sprintf ( buf, "% *ld", wid, val );
  return buf;
}
#define FMT (getFmt(8,x).c_str())

//---- Put to use
printf ( "      COUNT     USED     FREE\n" );
printf ( "A: %s %s %s\n", FMT(C[0]), FMT(U[0]), FMT(F[0]) );
printf ( "B: %s %s %s\n", FMT(C[1]), FMT(U[1]), FMT(F[1]) );
printf ( "C: %s %s %s\n", FMT(C[2]), FMT(U[2]), FMT(F[2]) );

//-------- Output
      COUNT     USED     FREE
A:      354   148523     3283
B: 54138259 12392759   200391
C:    91239     3281    61423

ফাংশন এবং ম্যাক্রো ডিজাইন করা হয়েছে যাতে প্রিন্টফগুলি আরও পঠনযোগ্য read


4
আমি ম্যাক্রোর সাথে আপনার উদ্দেশ্য সম্পর্কে 100% নিশ্চিত নই, তবে দেখে মনে হচ্ছে আপনি কোনও ক্রিয়াকে সংজ্ঞায়িত করতে চেয়েছিলেন, যেমন #define FMT(x) (getFmt(8,x).c_str())( এক্স প্যারামিটারটি নোট করুন !), যেমন একটি ভেরিয়েবলের বিপরীতে (আপনার কোডটি যা করে তাই)।
পোনকডুডল

0

আপনি যদি একটি অক্ষর অ্যারে জিপকোড [] এ জিপকোড সংরক্ষণ করতে চান তবে আপনি এটি ব্যবহার করতে পারেন:

snprintf( zipcode, 6, "%05.5d", atoi(zipcode));
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.