[Codeforces 118] A. Petya and Strings

1856 ワード

解析は異常になる可能性があります.
変な部分なら修正します
質問:https://codeforces.com/problemset/problem/112/A

タイムアウト:2 s
メモリ制限:256 MB
ペティアちゃんはプレゼントが好きです.彼の母は彼の誕生日に同じ大きさの文字列を2つ買った.これらの文字列は大文字、小文字で構成されています.今Petyaは2つの文字列を辞書で比較したいと思っています.文字列はどうでもいい、つまり大文字が同じで、対応する小文字と(a=A)であると考えられる.Petayを比較してください.
[入力]
1行目、2行目には、購入ごとの文字列が含まれています.文字列の長さは1~100です.文字列は同じ長さで、大文字と小文字だけで構成されていることが保証されています.
[出力]
1行目が2行目より前の場合は"-1"が出力されます.
2番目が1番目より早い場合は「1」が出力されます.
同じ場合は0を出力します.文字列を比較するときは、文字列のサイズは考慮されません.
[Note]
辞書の正式な順序で情報(辞書の順序やアルファベットの順序として知られている)を知りたい場合は、次のサイトにアクセスします.
http://en.wikipedia.org/wiki/Lexicographical_order

[回答]


文字列を比較する関数stricmp()を使用します.

この問題を解くときに学んだこと。


String Headerに内蔵されているstrcmp関数を使用して、いくつかの内容を理解しました.
まずstrcmp()の原型は
stricmp(char *string1, char *string2);
受信した文字列変数をconst char*タイプに変換するには、次の手順に従います.
直接挿入できません.したがって
string s
const char  *cc = s.c_str(); 
前に示したようにstringをconst char*に変換します.
このときc str()を使用する
stricmp()を使用して文字列を比較し、大文字と小文字を区別しません.
warning C4996: 'stricmp':
  • The POSIX name for this item is deprecated.
  • Instead, use the ISO C++ conformant name: _stricmp.
  • この問題を解決するために、このエラーが発生しました.
    stricmp()->stricmp()に変更して使用すると、エラーが解決します.
    strcpy->strcpysに変更すると、エラーは消え、正常に動作します.
    [コード]
    https://github.com/Woobeen906/Codeforces/blob/main/112-A.cpp