Programing

C에서 문자열을 어떻게 소문자로 지정합니까?

lottogame 2020. 9. 3. 23:39
반응형

C에서 문자열을 어떻게 소문자로 지정합니까?


C에서 대소 문자 혼합 문자열을 소문자 문자열로 어떻게 변환 할 수 있습니까?


그것은 표준 라이브러리에 있으며, 이러한 기능을 구현하는 가장 직접적인 방법입니다. 예, 문자열을 반복하고 각 문자를 소문자로 변환하십시오.

다음과 같은 사소한 것 :

#include <ctype.h>

for(int i = 0; str[i]; i++){
  str[i] = tolower(str[i]);
}

또는 하나의 라이너를 선호하는 경우 JF Sebastian에서 다음을 사용할 수 있습니다.

for ( ; *p; ++p) *p = tolower(*p);

소문자로 변환하는 것은 상승 비트 0x60과 같습니다.

for(char *p = pstr;*p;++p) *p=*p>0x40&&*p<0x5b?*p|0x60:*p;

(물론 라틴어 코드 페이지)


ASCII 문자열 만 다루고 있으며 로케일 문제가 없습니까? 그렇다면 네, 그렇게하는 것이 좋은 방법이 될 것입니다.


소문자 함수에서 유니 코드 지원이 필요한 경우 다음 질문을 참조하십시오. Light C 유니 코드 라이브러리


를 사용하는 것처럼 엉성한 경우 다음과 같이 tolower()하십시오.

char blah[] = "blah blah Blah BLAH blAH\0"; int i=0; while(blah[i]|=' ', blah[++i]) {}

그러나 음, 기호 / 숫자를 입력하면 폭발이 일어나고 일반적으로 악합니다. 그래도 좋은 인터뷰 질문입니다.

참고 URL : https://stackoverflow.com/questions/2661766/how-do-i-lowercase-a-string-in-c

반응형