Foorumid

Mac C++ stringiklass – kas pole tõstutundlik võrrelda?

T

sulama

Originaalplakat
4. detsember 2006
Katy, Texas
  • 8. juuni 2007
Olen vaadanud veebipõhist viidet (cppreference.com) ja oma C++ raamatut, kuid ma ei leia stringi, mis oleks tundlik võrdlus(). Kindlasti on C-Stringi tõstutundlikke võrdlusi, kuid ma eelistaksin kasutada C++ võrdlust, kui see on olemas.

(Lisaks olen nüüd missioonil see leida...)

Aitäh, Todd T

sulama

Originaalplakat
4. detsember 2006


Katy, Texas
  • 8. juuni 2007
Ma arvan, et võiksin kasutada bitikomplekti VÕI koos teadaolevalt pikema, kui vajan kõigi tühikute stringiga (X'20') ja seejärel testida väiketähtedega võrdlemist...

ma näen

25. oktoober 2004
  • 8. juuni 2007
See on peaaegu uskumatu, kuid ma ei usu, et standardses C++ teegis on tõstutundlik.

Kui te ei soovi või ei pea muretsema asukohtade pärast, tehke järgmist.
_stricmp( str1.c_str(), str2.c_str() )
Kas kõige lihtsam lahendus (ka üsna tõhus).

Lokaadid muudavad asja üsna keeruliseks (noh, tegelikult teevad selle nii keeruliseks standardteegi puudused).
Vaatame, kas leian lingi millegi kohta, mis käsitleb asukohti...
siin on üks: http://lafstern.org/matt/col2_new.pdf
Ma ei tea, kas ta tõesti teab, millest räägib, aga tundub, et ta teab. Ta jätkab seda mõnda aega, et saaksite probleemist aru saada, kuid võite vahele jätta ja vaadata viimast koodiplokki, et leida tema parim lahendus. T

sulama

Originaalplakat
4. detsember 2006
Katy, Texas
  • 9. juuni 2007
Aitäh iSee. Jah, tal on ilmselt õigus. Kuid oma eesmärkidel töötan ma 7-bitiste ASCII märgikoodidega ja arvan, et see koodijupp on piisavalt hea.

Aitäh kinnituse eest – hea meel näha, et ma sellest lihtsalt puudust ei tundnud.

Todd

Kood: |_+_| T

sulama

Originaalplakat
4. detsember 2006
Katy, Texas
  • 10. juuni 2007
iSee ütles: Kui te ei soovi või ei pea muretsema asukohtade pärast, siis:
_stricmp( str1.c_str(), str2.c_str() )
Kas kõige lihtsam lahendus (ka üsna tõhus).

OK, ma annan alla. Kust sa selle välja mõtlesid _stricmp ?

Todd IN

wittegijt

18. veebruar 2007
Eindhoven
  • 11. juuni 2007
toddburch ütles: OK, ma annan alla. Kust sa selle välja mõtlesid _stricmp ?

Todd

See on Windowsi asi. Unixi teegid kasutavad strcasecmp-i, see asub .

Wittegijt.

ma näen

25. oktoober 2004
  • 11. juuni 2007
toddburch ütles: OK, ma annan alla. Kust sa selle välja mõtlesid _stricmp ?

Todd

OK, vabandust, et selle välja viskasin.

Arvasin, et see on osa standardsest C-teegist, kuid see pole nii. See lihtsalt ilmub mitteametlikult erinevate nimede all C-teegi erinevates rakendustes. Nii et tõstutundlik võrdlus pole ka ametliku C-teegi ametlik osa. Kurat. See tundub nii tohutu tegematajätmisena. VS-i all on see _stricmp() või stricmp(), CodeWarrior for Macis on see stricmp() või strcasecmp() ja OS X 10.4/Xcode puhul on see strcasecmp().

Kui järele mõelda, oleks pidanud juhtjoon andma mulle vihje.

Ma arvan, et kui soovite C-standardiga järgida, peate tsüklis rakendama enda oma, kasutades tolower() (või toupper()).

Vaatame, esimene läbimine võib olla (see on minu peast lahti, EI OLE testitud kood):
Kood: |_+_|
Igatahes, vabandan veel kord halva nõuande pärast. Arvan, et ma pole tegelikult Mac OS X-is palju C/C++ kodeerimist teinud, kus oleksin tahtnud OS API-t (CFString jne) vältida alates CodeWarriori aegadest... T

sulama

Originaalplakat
4. detsember 2006
Katy, Texas
  • 11. juuni 2007
Ahhhha. Kõlab loogiliselt. Aitäh Wittegijt ja iSee. Olen lugenud oma 'Encyclopedia C' (Sybex, 1991) ja kõigil (või vähemalt paljudel) Microsofti mittestandardsetel märksõnadel on ka esimese tähemärgi allkriips. Oleks pidanud mulle vihje andma.

OK, nüüd strcasecmp() . Veebisait cppreference.com, mida olen kasutanud, näib olevat ainult standardne C/C++. Olen googeldanud Mac OS X XCode'i spetsiifilist viitesaiti ja pole seda leidnud. Milline on hea Mac OS X C++ võrdlusveebisait? Või on kuskil XCode'i spikri sisse ehitatud C++ viide ja ma lihtsalt ei leidnud seda? Või, kui see kõik ei õnnestu, kas Apple'i arenduskeskuses on ka üks, millest olen ilma jäänud?

Nii suured kui XCode'i kettapildid, mille ma alla laadin ja küsimisel installin, on seal kindlasti keegi keeleviide – see tähendab, et algselt alla laaditud Java-kraam oli SUUR.

Todd

Krevnik

8. september 2003
  • 11. juuni 2007
toddburch ütles: OK, nüüd strcasecmp() . Veebisait cppreference.com, mida olen kasutanud, näib olevat ainult standardne C/C++. Olen googeldanud Mac OS X XCode'i spetsiifilist viitesaiti ja pole seda leidnud. Milline on hea Mac OS X C++ võrdlusveebisait? Või on kuskil XCode'i spikri sisse ehitatud C++ viide ja ma lihtsalt pole seda leidnud? Või, kui see kõik ei õnnestu, kas Apple'i arenduskeskuses on ka üks, millest olen ilma jäänud?

See on olemas, kuid ma arvan, et see ei ületa POSIX-i kihis olevaid C-funktsioone, vaid ainult kõiki Apple'i POSIX-i täiendusi. Terminali abil saate juurdepääsu mõnede nende funktsioonide man-lehtedele. 'Man strcasecmp' viib teid otse lehele, mis räägib sellest funktsioonist ja kirjeldab selle kasutamist.

ma näen

25. oktoober 2004
  • 11. juuni 2007
Xcode'is tuhnides leidsin lingi sellele lehele:

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

mis on sisukord kõige jaoks OS X man-lehtedel, sealhulgas C teegi funktsioonide jaoks.

Xcode'i viiteteek pääseb lisaks muudele ressurssidele juurde ka man-lehtedele, nii et need on kõik Xcode'i kaudu saadaval (ma kasutan kogu aeg valikut „Otsi valitud teksti API viitest”).

Näib, et C-funktsioonid on jaotises 3. Näib, et iga funktsiooni dokumentatsioon sisaldab jaotist 'standard' või 'ajalugu', mis annab teavet selle kohta, millisele standardile funktsioon vastab. Ilmselt teisaldati strcasecmp() vastavuse huvides kaustast 'string.h' jaotisesse 'strings.h'. Ma pole täpselt kindel, mis viisil see selle nõuetele vastavaks muudab. Arvan, et see tähendab, et mittestandardsed funktsioonid ei tohiks string.h-s ilmuda, nii et nad teisaldasid selle teise päisefaili. T

sulama

Originaalplakat
4. detsember 2006
Katy, Texas
  • 11. juuni 2007
See on suurepärane viiteleht! Ma arvasin, et selline teave on kuskil!