Tips in Action‎ > ‎문자열‎ > ‎

첫 글자는 대문자로, 나머지는 소문자로 바꾸기

전종필

영문 문자열의 첫글자만 대문자로 만들고, 나머지는 소문자로 만드는 팁입니다. 사용자의 입력을 받았을 때, 다양한 사용자의 입력 습관을 무시하고, 적절히 바꾸는 방법중 하나라고 생각됩니다.
쌍따옴표를 사용할 때, \n이 개행문자(new line)로, \t가 탭문자로 사용된다는 것을 아실 것입니다. 이 외에도 다양한 특수문자들이 있습니다. 그 중에는
\U : 문자열의 끝 또는 \E가 나올 때 까지 모든 문자를 대문자로 바꿈
\L : 문자열의 끝 또는 \E가 나올 때 까지 모든 문자를 소문자로 바꿈
\u : 바로 다음의 문자만을 대문자로 바꿈
\l : 바로 다음의 문자만을 소문자로 바꿈
과 같은 특수문자들이 있습니다. 이 특수문자들을 이용하면, 원하는 바를 이룰 수 있습니다.
$str = "what A wAnderful Day!";
$badstr  = "\u$str";   # What A wAnderful Day!이니 안됩니다.
$goodstr = "\u\L$str"; # What a wanderful day! .. 좋습니다.
$badstr의 경우는 굳이 설명이 필요없지만, 자칫하면 위와 같이 생각할 수 있습니다. (사실 프로그래머는 사용자의 입력을 ``예단''하는 수가 상당히 많습니다 :-)
$goodstr은 일단 \L로 모든 문자들을 소문자로 바꾼후에 \u로 첫 문자만 대문자로 바꿔주었습니다. 

두번째 방법은
$goodstr  = ucfirst(lc($str));
입니다. 이게 더 좋은가요?

사실, 첫번째 방법의 경우는 문자열 안에서 사용할 때 좋은 방법입니다.

$longString = "User input: \u\L$str";

이런 식이죠.

Comments