source

C로 문자열을 소문자로 하는 방법은 무엇입니까?

factcode 2022. 8. 17. 23:43
반응형

C로 문자열을 소문자로 하는 방법은 무엇입니까?

C의 소문자 문자열로 변환하려면 어떻게 해야 하나요?

이 기능은 표준 라이브러리에 있습니다.이것이 제가 볼 수 있는 가장 간단한 기능입니다.네, 문자열을 반복하여 각 문자를 소문자로 변환합니다.

다음과 같은 사소한 것:

#include <ctype.h>

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

라이너 한 척을 원하신다면 J.F.에서 이 라이너를 사용하셔도 됩니다.세바스찬:

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

ASC에 한정되어 있는 경우, 소문자로 변환하는 것은 상승 비트 0x60에 해당합니다.II:

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

포인터를 루프하여 성능을 향상시킵니다.

#include <ctype.h>

char* toLower(char* s) {
  for(char *p=s; *p; p++) *p=tolower(*p);
  return s;
}
char* toUpper(char* s) {
  for(char *p=s; *p; p++) *p=toupper(*p);
  return s;
}

소문자 함수로 Unicode 지원이 필요한 경우 Light C Unicode Library를 참조하십시오.

만약 우리가 허술한 방법으로tolower(), 다음을 수행합니다.

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

하지만, 음, 만약 당신이 그것을 몇 개의 기호나 숫자를 준다면, 그것은 약간 폭발합니다. 그리고 일반적으로 그것은 악마입니다.좋은 인터뷰 질문이야

ASCII 문자열만 취급하고 로케일의 문제는 없습니까?그럼, 그게 좋은 방법이겠네요.

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

반응형