演習3つの文字列比較の説明のタイトルを取得します

:ために書かれhttp://codeforces.com/problemset/problem/112/A

タイトル説明

次の2つの文字列aとbを与え、あなたは大文字と小文字を区別しない場合には彼らの辞書編集のサイズを比較する必要があります。
無視する場合は、意味:「ABC」と大文字を無視し、「ABC」辞書編集が等しいです。
大文字と小文字を区別しないの場合:

  • 文字列は、文字列bより辞書以下、出力1がある場合。
  • 文字列が辞書の文字列であり、bは、0を出力等しい場合。
  • 文字列の場合、文字列は辞書順、Bより出力1をプレイ。

    入力形式

    二つの入力ラインに対応する最初の行の文字列、文字列bに対応する第二の行を含みます。1と100の間の等しい長さの2つの文字列。

    出力フォーマット

    主題に従って説明大文字と小文字を区別しない場合に出力比較結果辞書式二つの文字列(-1、0または1)が述べています。

    サンプル入力1

aaaa
aaaA

サンプル出力1

0

サンプル入力2

abs
Abz

サンプル出力2

-1

サンプル入力3

abcdefg
AbCdEfF

サンプル出力3

1

トピック分析

質問の頭は大文字小文字は区別されませんので、まず、ので、我々はすべて大文字の二つの文字列の正式なプロセスは、文字を小文字に変換することができます前に。
その後、整列変換するために、()関数TOLOWER変数のcharを使用することができます。
我々はchar配列で動作している場合はその後、我々は辞書順strcmpの機能を持つ2つの文字列を比較することができ、
我々は文字列で動作している場合、我々は直接2つの文字列を比較する比較記号を使用することができますサイズ、または比較するための比較文字列メンバ関数を使用します。

以下を達成するために、コードchar型の配列を使用します:

#include <bits/stdc++.h>
using namespace std;

char a[110], b[110];

int main() {
    cin >> a >> b;
    int n = strlen(a);
    for (int i = 0; i < n; i ++) a[i] = tolower(a[i]);
    for (int i = 0; i < n; i ++) b[i] = tolower(b[i]);
    cout << strcmp(a, b) << endl;
    return 0;
}

以下を達成するために、コードの文字列を使用します:

#include <bits/stdc++.h>
using namespace std;

string a, b;

int main() {
    cin >> a >> b;
    int n = a.length();
    for (int i = 0; i < n; i ++) a[i] = tolower(a[i]);
    for (int i = 0; i < n; i ++) b[i] = tolower(b[i]);
    cout << a.compare(b) << endl;
    return 0;
}

おすすめ

転載: www.cnblogs.com/zifeiynoip/p/11450567.html