私は、年と月を含むchar *を使ってYYYYMMと言うことができます。 01〜12の範囲でMMをどのように比較できますか?部分文字列のためにatoiを実行しなければならないのですか?char配列の部分文字列と有効な範囲を比較する方法は?
答えて
文字列の月部分の最初の文字が「0」の場合、2番目の文字は有効であるために '1'から '9'の間になければなりません。最初の文字が '1'の場合、2番目の文字は有効であるために '0'と '2'の間になければなりません。その他の初期文字は無効です。
コードで
bool valid_month (const char * yyyymm) {
return ((yyymm[4] == '0') && (yyymm[5] >= '1') && (yyymm[5] <= '9')) ||
((yyymm[4] == '1') && (yyymm[5] >= '0') && (yyymm[5] <= '2'));
}
DavidとLouのおかげです。それは助けになった! – user1001939
有効な境界のタイプミスと仮定のほかに、これは正しいアイデアです。 – AJG85
あなたは、サブストリングのatoi関数()を行うこともできますし、単にASCII値を比較することができます。例:
if (buf[4] == '0')
{
// check buf[5] for values between '1' and '9'
}
else if (buf[4] == '1')
{
// check buf[5] for values between '0' and '2'
}
else
{
// error
}
どちらの方法でもかまいません。私は実際にあなたが最終的にどのように情報を(intまたは文字列として)格納するかに依存していると思います。
*変数は「PSTR」と呼ばれ、あなたが行うことができますMMの後にヌル終了し、あなたの文字と仮定すると:
int iMon = atoi(pstr + 4);
if ((iMon >= 1) && (iMon <= 12))
{
// Month is valid
}
-1:このアプローチでは、 "20111Z"と "" 19999# "が有効であると言えます。 –
- 1. 文字列部分の比較
- 2. C固定サイズのchar配列と文字列を比較する
- 3. 文字列の部分文字列の範囲を見つける
- 4. 効率的な文字列の比較
- 5. 共通部分文字列を検索するために文字列のセットを比較する方法
- 6. 文字列を目的のCの配列と比較する
- 7. const charを文字列と比較する
- 8. 範囲外の部分文字列ですか?
- 9. 文字列の比較と文は
- 10. 文字列の部分文字列を置換する方法
- 11. 文字列連結とPHPの配列implodeとの比較
- 12. 部分一致の文字ベクトルを比較する方法
- 13. 文字列と他の文字列をシーケンシャルで比較する
- 14. 比較文字列
- 15. 文字列比較
- 16. Excel VBA - 範囲と配列を比較するための支援
- 17. GUIを使ったJavaメモリゲーム - 文字列と配列の比較
- 18. BindingListの文字列配列の部分
- 19. 日付文字列を比較する方法とiPhoneの日付文字列をグループ化する方法は?
- 20. char配列からベクトルにデータの範囲をコピーする方法は?
- 21. C++で文字列と文字列を比較する
- 22. iOSでの文字列と配列の比較
- 23. MD5チェックサムの最も有効な部分文字列
- 24. 文字列比較は
- 25. 文字列比較はシェルスクリプト
- 26. 文字列値をXmlの文字列配列に比較して返すAndroid
- 27. PHP:文字列を配列に分割するforeach char
- 28. 文字列とPHPの文字列を比較しますか?
- 29. Python:文字列を比較する強力な方法
- 30. 多次元文字列配列の特定の部分を埋める(範囲外)
C++では、一般的に構築することができ、日付オブジェクトを使用するか、または設計する方が良いだろうさまざまなフォーマット。 – AJG85