Forumi

Mac C++ virkņu klase — vai nav reģistrjutīga salīdzināt?

T

sakust

Oriģinālais plakāts
2006. gada 4. decembris
Ketija, Teksasa
  • 2007. gada 8. jūnijs
Esmu meklējis tiešsaistes atsauci (cppreference.com) un savu C++ grāmatu, taču nevaru atrast virkni nejutīgu salīdzinājums (). Noteikti ir C-String reģistrjutīgie salīdzinājumi, bet es labprātāk izmantotu C++ salīdzinājumu, ja tāds ir.

(Turklāt tagad man ir uzdevums to atrast...)

Paldies, Todd T

sakust

Oriģinālais plakāts
2006. gada 4. decembris


Ketija, Teksasa
  • 2007. gada 8. jūnijs
Es domāju, ka es varētu izmantot bitu kopu VAI ar zināmu garāku visu tukšo vietu virkni (X'20') un pēc tam pārbaudīt, vai salīdzināt ar mazajiem burtiem...

ES redzu

2004. gada 25. oktobris
  • 2007. gada 8. jūnijs
Tas ir gandrīz neticami, bet es neticu, ka standarta C++ bibliotēkā ir reģistrjutīgs.

Ja nevēlaties vai jums nav jāuztraucas par lokalizācijām, veiciet tālāk norādītās darbības.
_stricmp( str1.c_str(), str2.c_str() )
Ir vienkāršākais risinājums (arī diezgan efektīvs).

Lokalizācijas sarežģī lietas (labi, tas tiešām ir standarta bibliotēkas trūkumi, kas to padara tik sarežģītu).
Paskatīsimies, vai varu atrast saiti uz kaut ko, kas attiecas uz lokalizācijām...
šeit ir viens: http://lafstern.org/matt/col2_new.pdf
Es nezinu, vai viņš patiešām zina, par ko runā, bet izklausās, ka viņš zina. Viņš kādu laiku runā par to, lai jūs varētu saprast problēmu, taču varat pāriet uz leju un pārbaudīt pēdējo koda bloku, lai atrastu viņa labāko risinājumu. T

sakust

Oriģinālais plakāts
2006. gada 4. decembris
Ketija, Teksasa
  • 2007. gada 9. jūnijs
Paldies iSee. Jā, viņam droši vien ir taisnība. Tomēr saviem mērķiem es strādāšu ar 7 bitu ASCII rakstzīmju kodiem, un es domāju, ka šī koda daļa būs pietiekami laba.

Paldies par apstiprinājumu — prieks redzēt, ka man tas netrūka.

Tods

Kods: |_+_| T

sakust

Oriģinālais plakāts
2006. gada 4. decembris
Ketija, Teksasa
  • 2007. gada 10. jūnijs
iSee teica: Ja nevēlaties vai jums nav jāuztraucas par lokalizācijām, tad:
_stricmp( str1.c_str(), str2.c_str() )
Ir vienkāršākais risinājums (arī diezgan efektīvs).

Labi, es padodos. Kur tu izdomāji _stricmp ?

Tods IN

wittegijt

2007. gada 18. februāris
Eindhovena
  • 2007. gada 11. jūnijs
Toddburch teica: Labi, es padodos. Kur tu izdomāji _stricmp ?

Tods

Tā ir Windows lieta. Unix bibliotēkas izmanto strcasecmp, tas ir .

Wittegijt.

ES redzu

2004. gada 25. oktobris
  • 2007. gada 11. jūnijs
Toddburch teica: Labi, es padodos. Kur tu izdomāji _stricmp ?

Tods

Labi, atvainojos, ka izmetu to ārā.

Es domāju, ka tā ir daļa no standarta C bibliotēkas, bet tā nav. Tas tikai neoficiāli parādās ar dažādiem nosaukumiem dažādās C bibliotēkas implementācijās. Tāpēc arī reģistrjutīgs salīdzinājums nav oficiālās C bibliotēkas oficiālā daļa. Bāc. Šķiet, ka tā ir milzīga izlaidība. Operētājsistēmā VS tas ir _stricmp() vai stricmp(), programmā CodeWarrior for Mac tas ir stricmp() vai strcasecmp(), bet operētājsistēmā OS X 10.4/Xcode tas ir strcasecmp().

Padomājot, galvenajam pasvītram vajadzēja man dot mājienu.

Es domāju, ka, ja vēlaties atbilst C standartam, jums ir jāievieš savs, izmantojot tolower() (vai toupper ()) cilpā.

Apskatīsim, ka pirmā pielaide varētu būt (tas ir no manas galvas, NAV pārbaudīts kods):
Kods: |_+_|
Jebkurā gadījumā vēlreiz atvainojos par slikto padomu. Laikam jau kopš CodeWarrior laikiem neesmu īsti daudz kodējis C/C++ operētājsistēmā Mac OS X, kur vēlējos izvairīties no OS API (CFString utt.) T

sakust

Oriģinālais plakāts
2006. gada 4. decembris
Ketija, Teksasa
  • 2007. gada 11. jūnijs
Ahhhha. Jēga. Paldies Wittegijt & iSee. Esmu lasījis savu enciklopēdiju C (Sybex, 1991), un visiem (vai vismaz daudziem) Microsoft nestandarta atslēgvārdiem ir arī pasvītrojums pirmajai rakstzīmei. Vajadzēja man dot padomu.

Labi, tagad uz strcasecmp() . Manis izmantotā vietne cppreference.com ir tikai standarta C/C++. Esmu Google meklējis Mac OS X XCode specifisku atsauces vietni un neesmu tādu atradis. Kāda ir laba Mac OS X C++ atsauces vietne? Vai arī XCode palīdzībā kaut kur ir iebūvēta C++ atsauce, un es to vienkārši neesmu atradis? Vai arī, ja tas viss neizdodas, vai Apple attīstības centrā ir kāds, kuru arī es esmu palaidis garām?

Lai arī cik lieli ir XCode diska attēli, kurus es lejupielādēju un instalēju, kad tiek prasīts, noteikti kāds tur ir valodas atsauce — es domāju, sākotnēji lejupielādētā Java informācija bija MILZĪGA.

Tods

Krevņika

2003. gada 8. septembris
  • 2007. gada 11. jūnijs
Toddburch teica: Labi, tagad uz strcasecmp() . Manis izmantotā vietne cppreference.com ir tikai standarta C/C++. Esmu Google meklējis Mac OS X XCode specifisku atsauces vietni un neesmu tādu atradis. Kāda ir laba Mac OS X C++ atsauces vietne? Vai arī XCode palīdzībā kaut kur ir iebūvēta C++ atsauce, un es to vienkārši neesmu atradis? Vai arī, ja tas viss neizdodas, vai Apple attīstības centrā ir kāds, kuru arī es esmu palaidis garām?

Tas ir tur, bet es nedomāju, ka tas pārsniedz C funkcijas, kas atrodas POSIX slānī, tikai visus Apple papildinājumus POSIX. Varat izmantot termināli, lai piekļūtu dažu šo funkciju man lapām. “man strcasecmp” novirzīs jūs tieši uz lapu, kurā ir runāts par šo funkciju, un aprakstīs, kā to izmantot.

ES redzu

2004. gada 25. oktobris
  • 2007. gada 11. jūnijs
Pameklējot Xcode, es atradu saiti uz šo lapu:

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

kas ir satura rādītājs visam OS X man lapu saturam, tostarp C bibliotēkas funkcijām.

Xcode atsauces bibliotēka piekļūst man lapām papildus citiem resursiem, tāpēc tie visi ir pieejami, izmantojot Xcode (es visu laiku izmantoju “Atrast atlasīto tekstu API atsaucē”).

Šķiet, ka C funkcijas ir 3. sadaļā. Šķiet, ka katras funkcijas dokumentācijā ir sadaļa “standarta” vai “vēsture”, kurā sniegta informācija par to, kādam standartam funkcija atbilst. Acīmredzot atbilstības dēļ strcasecmp() tika pārvietots no 'string.h' uz 'strings.h'. Es neesmu pārliecināts, tieši kādā veidā tas padara to par atbilstošu. Es domāju, ka tas nozīmē, ka nestandarta funkcijas nedrīkst parādīties string.h, tāpēc tās pārvietoja to uz citu galvenes failu. T

sakust

Oriģinālais plakāts
2006. gada 4. decembris
Ketija, Teksasa
  • 2007. gada 11. jūnijs
Tā ir lieliska atsauces lapa! Man likās, ka kaut kur bija tāda informācija!