大文字から小文字への変換

  文字( char 型)は,1 バイトの整数とみなすこともできます.実際,整数と同様の取り扱いが可能です.以下に示すプログラムでは,この性質を利用して,大文字を小文字に変換しています.アスキーコードでは,大文字は 65 ~ 90,小文字は 97 ~ 122 までです.したがって,文字を整数として扱い,32 を加えてやれば,大文字から小文字への変換が可能です.
/****************************/
/* 大文字から小文字への変換 */
/*  	coded by Y.Suganuma */
/****************************/
#include <stdio.h>

int main()
{
/*
	 データ数の入力
*/
	char c[50];
	printf("大文字の文字列を入力してください(49字以内) ");
	scanf("%s", c);
/*
	 小文字へ変換
*/
	int k = 0;
	while (c[k] != '\0') {
		c[k] += 32;
		k++;
	}
/*
	 出力
*/
	printf("%s\n", c);

	return 0;
}
		

  以下に示すのは,上と同じプログラムを new 演算子を使用して書いた例です.

/****************************/
/* 大文字から小文字への変換 */
/*  	coded by Y.Suganuma */
/****************************/
#include <stdio.h>

int main()
{
/*
	 データ数の入力
*/
	char *c = new char [50];
	printf("大文字の文字列を入力してください(49字以内) ");
	scanf("%s", c);
/*
	 小文字へ変換
*/
	int k = 0;
	while (c[k] != '\0') {
		c[k] += 32;
		k++;
	}
/*
	 出力
*/
	printf("%s\n", c);

	return 0;
}