ফোরাম

ম্যাক সি++ স্ট্রিং ক্লাস - কেস অসংবেদনশীল তুলনা?

টি

গলে যাওয়া

আসল পোস্টার
4 ডিসেম্বর, 2006
ক্যাটি, টেক্সাস
  • জুন 8, 2007
আমি একটি অনলাইন রেফারেন্স (cppreference.com) এবং আমার C++ বই দেখেছি, কিন্তু আমি একটি স্ট্রিং সংবেদনশীল তুলনা() খুঁজে পাচ্ছি না। অবশ্যই সি-স্ট্রিং কেস সংবেদনশীল তুলনা আছে, তবে আমি বরং একটি C++ তুলনা ব্যবহার করব যদি একটি থাকে।

(প্লাস, এখন আমি এটি খুঁজে বের করার মিশনে আছি...)

ধন্যবাদ, টড টি

গলে যাওয়া

আসল পোস্টার
4 ডিসেম্বর, 2006


ক্যাটি, টেক্সাস
  • জুন 8, 2007
আমি অনুমান করি আমি একটি বিটসেট ব্যবহার করতে পারি বা সমস্ত ফাঁকা স্থানগুলির (X'20') একটি পরিচিত দীর্ঘ-প্রয়োজনীয় স্ট্রিং সহ এবং তারপরে একটি ছোট হাতের তুলনার জন্য পরীক্ষা করতে পারি...

আমি দেখি

25 অক্টোবর, 2004
  • জুন 8, 2007
এটা প্রায় বিশ্বাসের বাইরে, কিন্তু আমি বিশ্বাস করি না যে স্ট্যান্ডার্ড C++ লাইব্রেরিতে কেস-ইনসেনসিটিভ আছে।

আপনি যদি লোকেল সম্পর্কে চিন্তা করতে না চান বা প্রয়োজন না করেন, তাহলে:
_stricmp( str1.c_str(), str2.c_str() )
সবচেয়ে সহজ সমাধান (এছাড়াও বেশ দক্ষ)।

লোকেলগুলি জিনিসগুলিকে কিছুটা জটিল করে তোলে (ভাল, এটি সত্যিই স্ট্যান্ডার্ড লাইব্রেরির ঘাটতি যা এটিকে এত জটিল করে তোলে)।
লোকেলের সাথে ডিল করে এমন কিছুর জন্য আমি একটি লিঙ্ক খুঁজে পেতে পারি কিনা দেখুন...
এখানে একটি: http://lafstern.org/matt/col2_new.pdf
আমি জানি না তিনি সত্যিই জানেন যে তিনি কী সম্পর্কে কথা বলছেন, তবে মনে হচ্ছে তিনি করেন। তিনি এই বিষয়ে কিছুক্ষণ চালিয়ে যান যাতে আপনি সমস্যাটি বুঝতে পারেন, তবে আপনি নীচে এড়িয়ে যেতে পারেন এবং তার সেরা সমাধানের জন্য শেষ কোড ব্লকটি পরীক্ষা করে দেখতে পারেন। টি

গলে যাওয়া

আসল পোস্টার
4 ডিসেম্বর, 2006
ক্যাটি, টেক্সাস
  • জুন 9, 2007
ধন্যবাদ iSee. হ্যাঁ, তিনি সম্ভবত সঠিক. যাইহোক, আমার উদ্দেশ্যে, আমি 7-বিট ASCII অক্ষর কোডগুলির সাথে কাজ করব, এবং আমি মনে করি এই কোডটি যথেষ্ট ভাল হবে।

নিশ্চিতকরণের জন্য ধন্যবাদ - আমি এটি মিস করছি না দেখে আনন্দিত।

টড

কোড: |_+_| টি

গলে যাওয়া

আসল পোস্টার
4 ডিসেম্বর, 2006
ক্যাটি, টেক্সাস
  • জুন 10, 2007
iSee বলেছেন: আপনি যদি লোকেল সম্পর্কে চিন্তা করতে না চান বা প্রয়োজন না করেন, তাহলে:
_stricmp( str1.c_str(), str2.c_str() )
সবচেয়ে সহজ সমাধান (এছাড়াও বেশ দক্ষ)।

ঠিক আছে আমি যাচ্ছি. কোথায় নিয়ে এলেন _stricmp ?

টড ভিতরে

wittegijt

ফেব্রুয়ারী 18, 2007
আইন্ডহোভেন
  • জুন 11, 2007
টডবার্চ বলেছেন: ঠিক আছে, আমি ছেড়ে দিই। কোথায় নিয়ে এলেন _stricmp ?

টড

এটা একটা উইন্ডোজ জিনিস. ইউনিক্স লাইব্রেরি strcasecmp ব্যবহার করে, এটি .

উইটেজিট।

আমি দেখি

25 অক্টোবর, 2004
  • জুন 11, 2007
টডবার্চ বলেছেন: ঠিক আছে, আমি ছেড়ে দিই। কোথায় নিয়ে এলেন _stricmp ?

টড

ঠিক আছে, সেখানে এটি নিক্ষেপ করার জন্য দুঃখিত।

আমি ভেবেছিলাম এটি স্ট্যান্ডার্ড সি লাইব্রেরির অংশ ছিল, কিন্তু তা নয়। এটি শুধুমাত্র প্রদর্শিত হয়, অনানুষ্ঠানিকভাবে, বিভিন্ন নামে, সি লাইব্রেরির বিভিন্ন বাস্তবায়নে। তাই একটি কেস-সংবেদনশীল তুলনা অফিসিয়াল সি লাইব্রেরির একটি অফিসিয়াল অংশ নয়। গিজ এত বড় বাদ পড়ার মত মনে হচ্ছে। VS-এর অধীনে, এটি _stricmp() বা stricmp(), Mac এর জন্য CodeWarrior-এর অধীনে এটি stricmp() বা strcasecmp(), এবং OS X 10.4/Xcode-এর অধীনে এটি strcasecmp()।

এটা ভাবুন, নেতৃস্থানীয় আন্ডারস্কোর আমাকে ইঙ্গিত দেওয়া উচিত ছিল.

আমি অনুমান করি আপনি যদি সি স্ট্যান্ডার্ডের সাথে সামঞ্জস্য করতে চান তবে আপনাকে একটি লুপে tolower() (বা toupper()) ব্যবহার করে নিজের বাস্তবায়ন করতে হবে।

আসুন দেখি একটি প্রথম পাস হতে পারে (এটি আমার মাথার উপরে, কোড পরীক্ষা করা হয়নি):
কোড: |_+_|
যাই হোক, আবার, খারাপ পরামর্শের জন্য দুঃখিত। আমি অনুমান করি যে আমি ম্যাক ওএস এক্স-এ প্রচুর C/C++ কোডিং করিনি যেখানে আমি CodeWarrior দিন থেকে OS API (CFString, ইত্যাদি) এড়াতে চেয়েছিলাম... টি

গলে যাওয়া

আসল পোস্টার
4 ডিসেম্বর, 2006
ক্যাটি, টেক্সাস
  • জুন 11, 2007
আহহহহ. জ্ঞান করে। ধন্যবাদ Wittegijt & iSee. আমি আমার 'এনসাইক্লোপিডিয়া সি' (সাইবেক্স, 1991) পড়ছি এবং মাইক্রোসফ্টের সমস্ত (বা অনেকগুলি, অন্তত) অ-মানক কীওয়ার্ডগুলির প্রথম অক্ষরের জন্যও একটি আন্ডারস্কোর রয়েছে। আমাকে টিপ করা উচিত ছিল.

ঠিক আছে, এখন করতে strcasecmp() . আমি যে cppreference.com ওয়েব সাইটটি ব্যবহার করছি তা শুধুমাত্র স্ট্যান্ডার্ড C/C++ বলে মনে হচ্ছে। আমি একটি Mac OS X XCode নির্দিষ্ট রেফারেন্স সাইটের জন্য গুগল করেছি এবং একটি খুঁজে পাইনি। একটি ভাল Mac OS X C++ রেফারেন্স ওয়েবসাইট কি? অথবা, কোথাও কি XCode সহায়তায় নির্মিত একটি C++ রেফারেন্স আছে এবং আমি এটি খুঁজে পাইনি? অথবা, সমস্ত কিছু ব্যর্থ করে, অ্যাপল ডেভেলপমেন্ট সেন্টারে কি এমন একটি আছে যা আমিও মিস করেছি?

XCode ডিস্কিমেজগুলি যতটা বড় যে আমি ডাউনলোড করে ইন্সটল করি যখন অনুরোধ করা হয়, সেখানে অবশ্যই একটি ভাষা রেফারেন্স আছে - আমি বলতে চাচ্ছি, আমি প্রাথমিকভাবে যে জাভা স্টাফ ডাউনলোড করেছি তা বিশাল ছিল।

টড

ক্রেভনিক

সেপ্টেম্বর 8, 2003
  • জুন 11, 2007
টডবার্চ বলেছেন: ঠিক আছে, এখন করতে strcasecmp() . আমি যে cppreference.com ওয়েব সাইটটি ব্যবহার করছি তা শুধুমাত্র স্ট্যান্ডার্ড C/C++ বলে মনে হচ্ছে। আমি একটি Mac OS X XCode নির্দিষ্ট রেফারেন্স সাইটের জন্য গুগল করেছি এবং একটি খুঁজে পাইনি। একটি ভাল Mac OS X C++ রেফারেন্স ওয়েবসাইট কি? অথবা, কোথাও কি XCode সহায়তায় নির্মিত একটি C++ রেফারেন্স আছে এবং আমি এটি খুঁজে পাইনি? অথবা, সমস্ত কিছু ব্যর্থ করে, অ্যাপল ডেভেলপমেন্ট সেন্টারে কি এমন একটি আছে যা আমিও মিস করেছি?

এটি সেখানে আছে, কিন্তু আমি মনে করি না যে এটি POSIX স্তরে থাকা C ফাংশনগুলির উপরে যায়, শুধুমাত্র অ্যাপলের POSIX-এ সমস্ত সংযোজন। আপনি এই ফাংশনগুলির কিছুতে ম্যান পেজ অ্যাক্সেস করতে টার্মিনাল ব্যবহার করতে পারেন। 'man strcasecmp' আপনাকে সেই ফাংশন সম্পর্কে কথা বলা পৃষ্ঠায় নিয়ে যাবে এবং কীভাবে এটি ব্যবহার করতে হবে তা বর্ণনা করবে।

আমি দেখি

25 অক্টোবর, 2004
  • জুন 11, 2007
Xcode এ ঘুরে ঘুরে, আমি এই পৃষ্ঠার একটি লিঙ্ক খুঁজে পেয়েছি:

http://developer.apple.com/documentation/Darwin/Reference/ManPages/index.html

যা সি লাইব্রেরি ফাংশন সহ ওএস এক্স ম্যান পৃষ্ঠাগুলির সমস্ত কিছুর জন্য বিষয়বস্তুর একটি সারণী।

এক্সকোড রেফারেন্স লাইব্রেরি অন্যান্য সংস্থান ছাড়াও ম্যান পৃষ্ঠাগুলি অ্যাক্সেস করে, তাই এগুলি সবই এক্সকোডের মাধ্যমে উপলব্ধ (আমি সব সময় 'এপিআই রেফারেন্সে নির্বাচিত পাঠ্য খুঁজুন' ব্যবহার করি)।

দেখে মনে হচ্ছে সি ফাংশনগুলি 3 বিভাগে রয়েছে৷ মনে হচ্ছে প্রতিটি ফাংশনের জন্য ডকুমেন্টেশনে একটি 'স্ট্যান্ডার্ড' বা 'ইতিহাস' বিভাগ রয়েছে যা ফাংশনটি কোন স্ট্যান্ডার্ড মেনে চলে তার কিছু তথ্য দেয়। স্পষ্টতই strcasecmp() সম্মতির কারণে 'string.h' থেকে 'strings.h'-এ সরানো হয়েছে। আমি নিশ্চিত নই যে ঠিক কোন উপায়ে এটি সঙ্গতিপূর্ণ করে তোলে। আমি অনুমান করি এর অর্থ হল যে অ-মানক ফাংশনগুলি string.h-এ উপস্থিত হওয়া উচিত নয়, তাই তারা এটিকে একটি ভিন্ন হেডার ফাইলে স্থানান্তরিত করেছে। টি

গলে যাওয়া

আসল পোস্টার
4 ডিসেম্বর, 2006
ক্যাটি, টেক্সাস
  • জুন 11, 2007
এটি একটি মহান রেফারেন্স পৃষ্ঠা! আমি যে মত তথ্য অনুভূত সেখানে কোথাও ছিল!