溶ける
オリジナルポスター- 2006年12月4日
- テキサス州ケイティ
- 2007年6月8日
(さらに、今私はそれを見つける使命を帯びています...)
ありがとう、トッド NS
溶ける
オリジナルポスター- 2006年12月4日
- テキサス州ケイティ
- 2007年6月8日
分かりました
- 2004年10月25日
- 2007年6月8日
ロケールについて心配したくない、または心配する必要がない場合は、次のようにします。
_stricmp(str1.c_str()、str2.c_str())
最も単純な解決策です(これも非常に効率的です)。
ロケールは物事をかなり複雑にします(まあ、これを非常に複雑にするのは実際には標準ライブラリの欠陥です)。
Lemmeは、ロケールを扱う何かへのリンクを見つけることができるかどうかを確認します...
これが1つです: http://lafstern.org/matt/col2_new.pdf
彼が何について話しているのか本当に知っているかどうかはわかりませんが、彼は知っているようです。彼はこの問題についてしばらく続けているので、問題を理解できますが、一番下までスキップして、最後のコードブロックをチェックして彼の最善の解決策を見つけることができます。 NS
溶ける
オリジナルポスター- 2006年12月4日
- テキサス州ケイティ
- 2007年6月9日
確認してくれてありがとう-私がそれを見逃しているだけではないのを見てうれしいです。
トッド
コード:
#include #include using namespace std ; bool case_insensitive_compare( string a, string b) { char char1, char2, blank = ' ' ; int len1 = a.length() ; int len2 = b.length() ; for (int i = 0 ; i input ; result = case_insensitive_compare(input, hello) ; std::cout << 'Result of compare of ' << input << ' to ' << hello << ' is ' << (result ? 'true' : 'false' ) << endl ; return 0; }
NS 溶ける
オリジナルポスター- 2006年12月4日
- テキサス州ケイティ
- 2007年6月10日
iSeeによると:ロケールについて心配したくない、または心配する必要がない場合は、次のようにします。
_stricmp(str1.c_str()、str2.c_str())
最も単純な解決策です(これも非常に効率的です)。
OK、あきらめます。どこで思いついたの? _stricmp ?
トッド の
wittegijt
- 2007年2月18日
- アイントホーフェン
- 2007年6月11日
toddburchは言った:OK、私はあきらめます。どこで思いついたの? _stricmp ?
トッド
それはWindowsのものです。 Unixライブラリはstrcasecmpを使用します。これはにあります。
Wittegijt。
分かりました
- 2004年10月25日
- 2007年6月11日
toddburchは言った:OK、私はあきらめます。どこで思いついたの? _stricmp ?
トッド
OK、それを捨ててすみません。
標準Cライブラリの一部だと思いましたが、そうではありません。これは、非公式に、Cライブラリのさまざまな実装にさまざまな名前で表示されます。したがって、大文字と小文字を区別しない比較も、公式のCライブラリの公式の一部ではありません。ギーゼ。とても大きな省略のようです。 VSでは_stricmp()またはstricmp()、MacではCodeWarriorではstricmp()またはstrcasecmp()、OS X 10.4 / Xcodeではstrcasecmp()です。
考えてみると、先頭のアンダースコアがヒントを与えてくれるはずです。
C標準に準拠したい場合は、ループ内でtolower()(またはtoupper())を使用して独自に実装する必要があると思います。
最初のパスが次のようになる可能性があることを見てみましょう(これは私の頭のてっぺんから外れており、テストされたコードではありません):
コード:
#include ... int mystricmp(const char* str1, const char* str2) { if (str1 == str2) return 0; else if (str1 == NULL) return -1; else if (str2 == NULL) return 1; else { while (tolower(*str1) == tolower(*str2) && *str1 != 0 && *str2 != 0) { ++str1; ++str2; } if (*str1 *str2) return 1; else return 0; } }
とにかく、もう一度、悪いアドバイスをお詫びします。 CodeWarriorの時代からOSAPI(CFStringなど)を避けたかったMac OSXではC / C ++コーディングをあまり行っていなかったと思います... NS
溶ける
オリジナルポスター- 2006年12月4日
- テキサス州ケイティ
- 2007年6月11日
OK、今から strcasecmp() 。私が使用しているcppreference.comWebサイトは、標準のC / C ++にすぎないようです。 Mac OS X XCode固有のリファレンスサイトをグーグルで検索しましたが、見つかりませんでした。優れたMacOS X C ++リファレンスWebサイトは何ですか?または、XCodeヘルプに組み込まれているC ++リファレンスがどこかにありますが、私はそれを見つけられませんでしたか?または、それがすべて失敗した場合、私も見逃したものがApple Development Centerにありますか?
XCodeディスクイメージと同じくらい大きいので、プロンプトが表示されたらダウンロードしてインストールします。確かに誰かが言語参照を持っています。つまり、最初にダウンロードしたJavaのものは巨大でした。
トッド
クリービック
- 2003年9月8日
- 2007年6月11日
トッドバーチは言った:OK、今から strcasecmp() 。私が使用しているcppreference.comWebサイトは、標準のC / C ++にすぎないようです。 Mac OS X XCode固有のリファレンスサイトをグーグルで検索しましたが、見つかりませんでした。優れたMacOS X C ++リファレンスWebサイトは何ですか?または、XCodeヘルプに組み込まれているC ++リファレンスがどこかにありますが、私はそれを見つけられませんでしたか?または、それがすべて失敗した場合、私も見逃したものがApple Development Centerにありますか?
それはそこにありますが、それはPOSIXレイヤーにあるC関数を超えているとは思いません。ただ、AppleがPOSIXに追加したものすべてです。ターミナルを使用して、これらの機能の一部のマニュアルページにアクセスできます。 'man strcasecmp'は、その関数について説明しているページに直接移動し、その使用方法を説明します。
分かりました
- 2004年10月25日
- 2007年6月11日
http://developer.apple.com/documentation/Darwin/Reference/ManPages/index.html
これは、Cライブラリ関数を含むOSXのマニュアルページのすべての目次です。
Xcodeリファレンスライブラリは、他のリソースに加えてマニュアルページにアクセスするため、これらはすべてXcodeから利用できます(私は常に「APIリファレンスで選択したテキストを検索」を使用します)。
C関数はセクション3にあるようです。各関数のドキュメントには、関数が準拠している標準に関する情報を提供する「標準」または「履歴」セクションが含まれているようです。どうやらstrcasecmp()は、コンプライアンス上の理由から「string.h」から「strings.h」に移動されたようです。どのようにして準拠するのか正確にはわかりません。非標準の関数はstring.hに表示されるべきではないので、別のヘッダーファイルに移動したことを意味していると思います。 NS
溶ける
オリジナルポスター- 2006年12月4日
- テキサス州ケイティ
- 2007年6月11日
人気の投稿