härdsmälta
Originalaffisch- 4 december 2006
- Katy, Texas
- 8 juni 2007
(Dessutom är jag på uppdrag att hitta den...)
Tack, Todd T
härdsmälta
Originalaffisch- 4 december 2006
- Katy, Texas
- 8 juni 2007
Jag förstår
- 25 oktober 2004
- 8 juni 2007
Om du inte vill eller behöver oroa dig för lokaler gör du så här:
_stricmp( str1.c_str(), str2.c_str() )
Är den enklaste lösningen (också ganska effektiv).
Lokaler komplicerar saker ganska mycket (ja, det är egentligen bristerna i standardbiblioteket som gör detta så komplicerat).
Får se om jag kan hitta en länk till något som handlar om lokaler...
här är en: http://lafstern.org/matt/col2_new.pdf
Jag vet inte om han verkligen vet vad han pratar om, men det låter som att han gör det. Han fortsätter ett tag om detta så att du kan förstå problemet, men du kan hoppa till botten och kolla in det sista kodblocket för hans bästa lösning. T
härdsmälta
Originalaffisch- 4 december 2006
- Katy, Texas
- 9 juni 2007
Tack för bekräftelsen - glad att se att jag inte bara saknade det.
Todd
Kod: |_+_| T
härdsmälta
Originalaffisch- 4 december 2006
- Katy, Texas
- 10 juni 2007
iSee sa: Om du inte vill eller behöver oroa dig för lokaler, då:
_stricmp( str1.c_str(), str2.c_str() )
Är den enklaste lösningen (också ganska effektiv).
OK jag ger upp. Var kom du på _stricmp ?
Todd I
wittegijt
- 18 februari 2007
- Eindhoven
- 11 juni 2007
toddburch sa: OK, jag ger upp. Var kom du på _stricmp ?
Todd
Det är en Windows-grej. Unix-bibliotek använder strcasecmp, det finns i .
Wittegijt.
Jag förstår
- 25 oktober 2004
- 11 juni 2007
toddburch sa: OK, jag ger upp. Var kom du på _stricmp ?
Todd
Okej, förlåt för att jag slängde det där.
Jag trodde att det var en del av standard C-biblioteket, men det är det inte. Det dyker bara upp, inofficiellt, under olika namn, i olika implementeringar av C-biblioteket. Så en skiftlägesokänslig jämförelse är inte heller en officiell del av det officiella C-biblioteket. Jösses. Det verkar vara en sådan enorm försummelse. Under VS är det _stricmp() eller stricmp(), under CodeWarrior för Mac är det stricmp() eller strcasecmp(), och under OS X 10.4/Xcode är det strcasecmp().
När jag tänker på det borde den ledande understrykningen ha gett mig tipset.
Jag antar att om du vill överensstämma med C-standarden måste du implementera din egen med tolower() (eller toupper()) i en loop.
Låt oss se att ett första pass kan vara (det här är från toppen av mitt huvud, INTE testad kod):
Kod: |_+_|
Hur som helst, igen, förlåt för det dåliga rådet. Jag antar att jag inte har gjort mycket C/C++-kodning på Mac OS X där jag ville undvika OS API (CFString, etc.) sedan CodeWarriors dagar... T
härdsmälta
Originalaffisch- 4 december 2006
- Katy, Texas
- 11 juni 2007
OK, nu till strcasecmp() . Webbplatsen cppreference.com jag har använt ser ut att bara vara standard C/C++. Jag har googlat efter en Mac OS X XCode-specifik referenssida och inte hittat någon. Vad är en bra referenswebbplats för Mac OS X C++? Eller finns det en C++-referens inbyggd i XCode-hjälpen någonstans och jag har bara inte hittat den? Eller, om inte allt detta, finns det en på Apple Development Center som jag också har missat?
Så stora som XCode-diskbilderna är som jag laddar ner och installerar när jag uppmanas att göra det, det finns säkert en språkreferens där någon - jag menar, Java-grejer jag laddade ner från början var ENORMA.
Todd
Krevnik
- 8 september 2003
- 11 juni 2007
toddburch sa: OK, nu till strcasecmp() . Webbplatsen cppreference.com jag har använt ser ut att bara vara standard C/C++. Jag har googlat efter en Mac OS X XCode-specifik referenssida och inte hittat någon. Vad är en bra referenswebbplats för Mac OS X C++? Eller finns det en C++-referens inbyggd i XCode-hjälpen någonstans och jag har bara inte hittat den? Eller, om inte allt detta, finns det en på Apple Development Center som jag också har missat?
Den finns där, men jag tror inte att den går över C-funktionerna som finns i POSIX-lagret, bara alla Apples tillägg till POSIX. Du kan använda terminalen för att komma åt man-sidor på några av dessa funktioner. 'man strcasecmp' tar dig direkt till sidan som talar om den funktionen och beskriver hur du använder den.
Jag förstår
- 25 oktober 2004
- 11 juni 2007
http://developer.apple.com/documentation/Darwin/Reference/ManPages/index.html
som är en innehållsförteckning för allt på OS X-man-sidorna, inklusive C-biblioteksfunktionerna.
Xcode-referensbiblioteket får åtkomst till man-sidor utöver andra resurser, så dessa är alla tillgängliga via Xcode (jag använder 'Hitta vald text i API-referens' hela tiden).
Det ser ut som att C-funktionerna finns i avsnitt 3. Det ser ut som att dokumentationen för varje funktion innehåller en 'standard' eller 'historik'-sektion som ger lite info om vilken standard funktionen följer. Tydligen har strcasecmp() flyttats från 'string.h' till 'strings.h' av efterlevnadsskäl. Jag är inte säker på exakt vilket sätt som gör det kompatibelt. Jag antar att det betyder att icke-standardiserade funktioner inte ska visas i string.h, så de flyttade den till en annan rubrikfil. T
härdsmälta
Originalaffisch- 4 december 2006
- Katy, Texas
- 11 juni 2007
Populära Inlägg