文字列の比較

文字配列による文字列の比較は、string.hに定義されているstrcmp関数で行うことができます。strcmpは2つの文字列s1とs2のポインタ(char型配列の場合は配列変数名で指定)を受け取り、s1 < s2 のとき負の値、s1 = s2 のとき0、s1 > s2 のとき正の値を返します。

次のプログラムは入力された2つの文字列を比較します。

#include<stdio.h>
#include<string.h>

int main(){
  char s1[10], s2[10];
  scanf("%s %s", s1, s2);
  if ( strcmp(s1, s2) == 0 ) printf("s1 == s2\n");
  else if ( strcmp(s1, s2) < 0 ) printf("s1 < s2\n");
  else if ( strcmp(s1, s2) > 0 ) printf("s1 > s2\n");
  return 0;
}
入力例 出力例
ab ab ab == ab
opq vwx opq < vwx
xyz xy xyz > xy

Reference

 

オンラインジャッジではじめるC/C++プログラミング入門 (マイナビ)

AIZU ONLINE JUDGE のコース問題を題材にした解説書です。各トピックごとに C/C++ 言語の基礎的な内容を学習し、Introduction to Programming の演習問題にチャレンジしていきます。内容は敷居の高いものではなく、プログラミング初学者が取り組む例題からスタートしています。