見出し画像

C言語-#5.strupr,strlwr

はおっ。

strupr
strlwr

文字列を大文字・小文字に変換する関数


strupr

char* strupr(char* s) {
  char* t_s = s;

  while (*s) {
    *s = toupper(*s);
    ++s;
  }

  return t_s;
}

strlwr

char* strlwr(char* s) {
  char* t_s = s;

  while (*s) {
    *s = tolower(*s);
    ++s;
  }

  return t_s;
}

おしまい

toupper, tolowerを使用して *s にNULLがくるまで繰り返します。当然 NULLチェックはありません。
ここで副作用が発生します。引数の s を関数内で書き換えてしまうためです。副作用とは関数内にて入力、または関連する変数などが書き換えられてしまうことを言います。正しく言うならプロシージャーと呼んだほうがいいかもしれませんね~。