smelten
originele poster- 4 december 2006
- Katy, Texas
- 8 juni 2007
(Bovendien ben ik nu op een missie om het te vinden...)
Bedankt, Todd t
smelten
originele poster- 4 december 2006
- Katy, Texas
- 8 juni 2007
ik snap het
- 25 okt 2004
- 8 juni 2007
Als u zich geen zorgen wilt of hoeft te maken over de landinstellingen, doet u het volgende:
_stricmp( str1.c_str(), str2.c_str() )
Is de eenvoudigste oplossing (ook behoorlijk efficiënt).
Locales maken de zaken behoorlijk ingewikkeld (nou, het zijn echt de tekortkomingen van de standaardbibliotheek die dit zo ingewikkeld maken).
Eens kijken of ik een link kan vinden voor iets dat met locales te maken heeft...
hier is er een: http://lafstern.org/matt/col2_new.pdf
Ik weet niet of hij echt weet waar hij het over heeft, maar het klinkt alsof hij dat wel doet. Hij gaat hier een tijdje over door, zodat je het probleem kunt begrijpen, maar je kunt helemaal naar beneden gaan en het laatste codeblok bekijken voor zijn beste oplossing. t
smelten
originele poster- 4 december 2006
- Katy, Texas
- 9 juni 2007
Bedankt voor de bevestiging - blij om te zien dat ik het niet alleen miste.
Todd
Code: |_+_| t
smelten
originele poster- 4 december 2006
- Katy, Texas
- 10 juni 2007
iSee zei: Als je je geen zorgen wilt of hoeft te maken over locaties, dan:
_stricmp( str1.c_str(), str2.c_str() )
Is de eenvoudigste oplossing (ook behoorlijk efficiënt).
Oke ik geef op. Waar ben je op gekomen? _stricmp ?
Todd IN
witterijt
- 18 februari 2007
- Eindhoven
- 11 juni 2007
toddburch zei: OK, ik geef het op. Waar ben je op gekomen? _stricmp ?
Todd
Het is een Windows-ding. Unix-bibliotheken gebruiken strcasecmp, het is in .
Witteijt.
ik snap het
- 25 okt 2004
- 11 juni 2007
toddburch zei: OK, ik geef het op. Waar ben je op gekomen? _stricmp ?
Todd
Oké, sorry dat ik dat hier weggooi.
Ik dacht dat het deel uitmaakte van de standaard C-bibliotheek, maar dat is het niet. Het verschijnt gewoon, onofficieel, onder verschillende namen, in verschillende implementaties van de C-bibliotheek. Dus een hoofdletterongevoelige vergelijking is ook geen officieel onderdeel van de officiële C-bibliotheek. Jeetje. Het lijkt zo'n enorme omissie. Onder VS is het _stricmp() of stricmp(), onder CodeWarrior voor Mac is het stricmp() of strcasecmp(), en onder OS X 10.4/Xcode is het strcasecmp().
Nu ik erover nadenk, het leidende onderstrepingsteken had me de hint moeten geven.
Ik denk dat als je wilt voldoen aan de C-standaard, je je eigen moet implementeren met tolower() (of toupper()) in een lus.
Laten we eens kijken of een eerste pas kan zijn (dit is uit mijn hoofd, NIET geteste code):
Code: |_+_|
Hoe dan ook, nogmaals sorry voor het slechte advies. Ik denk dat ik niet echt veel C/C++-codering heb gedaan op Mac OS X, waar ik de OS API (CFString, enz.) wilde vermijden sinds de CodeWarrior-dagen... t
smelten
originele poster- 4 december 2006
- Katy, Texas
- 11 juni 2007
OK, nu naar strcasecmp() . De cppreference.com-website die ik gebruik, lijkt alleen standaard C/C++ te zijn. Ik heb gegoogeld naar een Mac OS X XCode-specifieke referentiesite en heb er geen gevonden. Wat is een goede Mac OS X C++-referentiewebsite? Of is er ergens een C++-referentie ingebouwd in XCode-help en heb ik die gewoon niet gevonden? Of, als dat allemaal niet lukt, is er een in het Apple Development Center die ik ook heb gemist?
Hoe groot de XCode-schijfkopieën ook zijn die ik download en installeer wanneer daarom wordt gevraagd, er zit zeker een taalverwijzing in - ik bedoel, de Java-dingen die ik aanvankelijk downloadde waren GROOT.
Todd
Krevnik
- 8 sep. 2003
- 11 juni 2007
toddburch zei: OK, nu naar strcasecmp() . De cppreference.com-website die ik gebruik, lijkt alleen standaard C/C++ te zijn. Ik heb gegoogeld naar een Mac OS X XCode-specifieke referentiesite en heb er geen gevonden. Wat is een goede Mac OS X C++-referentiewebsite? Of is er ergens een C++-referentie ingebouwd in XCode-help en heb ik die gewoon niet gevonden? Of, als dat allemaal niet lukt, is er een in het Apple Development Center die ik ook heb gemist?
Het is er, maar ik denk niet dat het over de C-functies in de POSIX-laag gaat, alleen over alle toevoegingen van Apple aan POSIX. U kunt de terminal gebruiken om toegang te krijgen tot man-pagina's voor sommige van deze functies. 'man strcasecmp' brengt je rechtstreeks naar de pagina waar het over die functie gaat en beschrijft hoe je het moet gebruiken.
ik snap het
- 25 okt 2004
- 11 juni 2007
http://developer.apple.com/documentation/Darwin/Reference/ManPages/index.html
dat is een inhoudsopgave voor alles in de OS X-manpagina's, inclusief de C-bibliotheekfuncties.
De Xcode-referentiebibliotheek heeft naast andere bronnen ook toegang tot man-pagina's, dus deze zijn allemaal beschikbaar via Xcode (ik gebruik altijd 'Vind geselecteerde tekst in API-referentie').
Het lijkt erop dat de C-functies in sectie 3 staan. Het lijkt erop dat de documentatie voor elke functie een 'standaard'- of 'geschiedenis'-sectie bevat die informatie geeft over aan welke standaard de functie voldoet. Blijkbaar is strcasecmp() om nalevingsredenen verplaatst van 'string.h' naar 'strings.h'. Ik weet niet precies op welke manier dat het compliant maakt. Ik denk dat dit betekent dat niet-standaard functies niet in string.h mogen voorkomen, dus hebben ze het naar een ander headerbestand verplaatst. t
smelten
originele poster- 4 december 2006
- Katy, Texas
- 11 juni 2007
Populaire Berichten