فورمز

میک C++ سٹرنگ کلاس - کیس غیر حساس موازنہ کریں؟

ٹی

پگھلنا

اصل پوسٹر
4 دسمبر 2006
کیٹی، ٹیکساس
  • 8 جون 2007
میں نے ایک آن لائن حوالہ (cppreference.com) اور اپنی C++ کتاب دیکھی ہے، لیکن مجھے کوئی سٹرنگ غیر حساس موازنہ () نہیں مل سکا۔ یقینی طور پر C-String کیس غیر حساس موازنہ ہیں، لیکن میں اس کے بجائے 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-bit ASCII کریکٹر کوڈز کے ساتھ کام کروں گا، اور مجھے لگتا ہے کہ یہ کوڈ کا حصہ کافی اچھا ہوگا۔

تصدیق کے لیے شکریہ - یہ دیکھ کر خوشی ہوئی کہ میں صرف اسے یاد نہیں کر رہا تھا۔

ٹوڈ

کوڈ: |_+_| ٹی

پگھلنا

اصل پوسٹر
4 دسمبر 2006
کیٹی، ٹیکساس
  • 10 جون 2007
iSee نے کہا: اگر آپ نہیں چاہتے یا مقامی مقامات کے بارے میں فکر کرنے کی ضرورت ہے، تو:
_stricmp(str1.c_str(), str2.c_str() )
سب سے آسان حل ہے (کافی موثر بھی)۔

ٹھیک ہے، میں ہار مان لیتا ہوں۔ آپ کہاں سے آئے؟ _stricmp ?

ٹوڈ میں

wittegijt

18 فروری 2007
آئندھوون
  • 11 جون 2007
ٹوڈبرچ نے کہا: ٹھیک ہے، میں ہار مانتا ہوں۔ آپ کہاں سے آئے؟ _stricmp ?

ٹوڈ

یہ ونڈوز کی چیز ہے۔ یونکس لائبریریاں strcasecmp استعمال کرتی ہیں، یہ اس میں ہے۔

Wittegijt.

میں سمجھ گیا، اچھا

25 اکتوبر 2004
  • 11 جون 2007
ٹوڈبرچ نے کہا: ٹھیک ہے، میں ہار مانتا ہوں۔ آپ کہاں سے آئے؟ _stricmp ?

ٹوڈ

ٹھیک ہے، اسے وہاں پھینکنے کے لیے معذرت۔

میں نے سوچا کہ یہ معیاری C لائبریری کا حصہ ہے، لیکن ایسا نہیں ہے۔ یہ صرف، غیر سرکاری طور پر، مختلف ناموں سے، C لائبریری کے مختلف نفاذ میں ظاہر ہوتا ہے۔ لہٰذا کیس غیر حساس موازنہ بھی سرکاری C لائبریری کا سرکاری حصہ نہیں ہے۔ گیز ایسا لگتا ہے کہ یہ اتنی بڑی بھول ہے۔ VS کے تحت، یہ _stricmp() یا stricmp() ہے، CodeWarrior for Mac کے تحت یہ stricmp() یا strcasecmp() ہے، اور OS X 10.4/Xcode کے تحت یہ strcasecmp() ہے۔

اس کے بارے میں سوچیں، سرکردہ انڈر سکور کو مجھے اشارہ دینا چاہیے تھا۔

میرا اندازہ ہے کہ اگر آپ C معیار کے مطابق ہونا چاہتے ہیں تو آپ کو ٹولوور() (یا ٹاپر()) کو لوپ میں استعمال کرتے ہوئے خود کو لاگو کرنا ہوگا۔

آئیے دیکھتے ہیں کہ پہلا پاس ہو سکتا ہے (یہ میرے سر کے اوپر ہے، کوڈ کا تجربہ نہیں کیا گیا):
کوڈ: |_+_|
بہر حال، ایک بار پھر، برا مشورہ کے لئے معذرت. میرا اندازہ ہے کہ میں نے میک OS X پر واقعی میں بہت زیادہ 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++ حوالہ بنایا گیا ہے اور مجھے ابھی یہ نہیں ملا؟ یا، ان سب کو ناکام بناتے ہوئے، کیا ایپل ڈویلپمنٹ سینٹر میں کوئی ایسا ہے جسے میں نے بھی کھو دیا ہے؟

ایکس کوڈ ڈسکیمیجز جتنے بڑے ہیں کہ جب میں اشارہ کرتا ہوں تو میں ڈاؤن لوڈ اور انسٹال کرتا ہوں، یقیناً وہاں کوئی زبان کا حوالہ موجود ہے - میرا مطلب ہے، جاوا کی چیزیں جو میں نے شروع میں ڈاؤن لوڈ کی تھیں وہ بہت بڑی تھیں۔

ٹوڈ

کریونک

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
ایکس کوڈ میں گھومتے پھرتے، مجھے اس صفحہ کا ایک لنک ملا:

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

جو OS X مین پیجز میں ہر چیز کے لیے مندرجات کا ایک جدول ہے، بشمول C لائبریری کے افعال۔

ایکس کوڈ ریفرنس لائبریری دیگر وسائل کے علاوہ مین پیجز تک رسائی حاصل کرتی ہے، لہذا یہ سب ایکس کوڈ کے ذریعے دستیاب ہیں (میں ہر وقت 'API ریفرنس میں منتخب متن تلاش کریں' استعمال کرتا ہوں)۔

ایسا لگتا ہے کہ سی فنکشنز سیکشن 3 میں ہیں۔ ایسا لگتا ہے کہ ہر فنکشن کے لیے دستاویزات میں ایک 'معیاری' یا 'ہسٹری' ​​سیکشن ہوتا ہے جو کچھ معلومات دیتا ہے کہ فنکشن کس معیار کی تعمیل کرتا ہے۔ بظاہر تعمیل کی وجوہات کی بنا پر strcasecmp() کو 'string.h' سے 'strings.h' میں منتقل کیا گیا تھا۔ مجھے قطعی طور پر یقین نہیں ہے کہ یہ کس طرح سے مطابقت رکھتا ہے۔ میرا اندازہ ہے کہ اس کا مطلب یہ ہے کہ string.h میں غیر معیاری فنکشنز ظاہر نہیں ہونے چاہئیں، اس لیے انہوں نے اسے ایک مختلف ہیڈر فائل میں منتقل کر دیا۔ ٹی

پگھلنا

اصل پوسٹر
4 دسمبر 2006
کیٹی، ٹیکساس
  • 11 جون 2007
یہ ایک عظیم حوالہ صفحہ ہے! میں نے سوچا کہ ایسی معلومات کہیں موجود تھی!