私は、年と月を含む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. 部分文字列の範囲外
- 3. charと文字列の比較 - C
- 4. 文字列部分の比較
- 5. 比較文字列と変更された文字列と部分文字列
- 6. 部分文字列比較PHP
- 7. hackerrank-java部分文字列比較エラー
- 8. 配列文字列と文字列を比較する
- 9. 異なるテーブルの行の部分文字列を比較する方法
- 10. Java配列と文字列の比較
- 11. オブジェクトメンバ配列と文字列の比較
- 12. C固定サイズのchar配列と文字列を比較する
- 13. 注入なしの部分文字列との比較
- 14. 構造体のchar配列とユーザー入力文字配列の比較
- 15. litereとcharの配列を比較する方法 "("
- 16. swift3の部分文字列の範囲を取得する方法は?
- 17. 文字列を大規模な配列と比較する最速の方法
- 18. ファイル名の部分文字列とフォルダ名の部分文字列を比較して移動する
- 19. SQL:文字列テキストフィールドの日付範囲の比較
- 20. 文字列の部分文字列の範囲を見つける
- 21. 効率的な文字列の比較
- 22. VBA文字列配列を範囲に渡す方法
- 23. JavaScriptの配列コンテンツと文字列を比較するには?
- 24. 共通部分文字列を検索するために文字列のセットを比較する方法
- 25. 配列内の文字列比較
- 26. 配列の文字と文字列の比較
- 27. const charを文字列と比較する
- 28. 文字列を目的のCの配列と比較する
- 29. bbcode投稿から有効な部分文字列を取得する方法
- 30. 2文字配列を比較する方法
C++では、一般的に構築することができ、日付オブジェクトを使用するか、または設計する方が良いだろうさまざまなフォーマット。 – AJG85