ctype.h에서 tolower를 사용하지 않고 C 문자열을 모두 소문자로 변환하려고합니다. 코드가 작동하지 않는 것 같습니다. 런타임 오류가 발생합니다. 내가 뭘하려는 건 대문자로 된 글자 bij 'a'의 ASCII 값을 바꾸는 것이다. 'A'는 저 값을 소문자로 변환해야한다.C-String을 모두 lower로 변환
#include <stdio.h>
void to_lower(char* k) {
char * temp = k;
while(*temp != 0) {
if(*temp > 'A' && *temp < 'Z') {
*temp += ('a' - 'A');
}
temp++;
}
}
int main() {
char * s = "ThiS Is AN eXaMpLe";
to_lower(s);
printf("%s",s);
}
받는 오류는 무엇인가요? 'to_lower '다음에 여분의'}'이있는 것 같습니다. – SimpleJ
또한 정의되지 않은 동작 인 문자열 리터럴을 수정하는 것처럼 보입니다. –
@SimpleJ : 그는 여분의'}'을 가지고 있지 않습니다. 단지 포맷되지 않은 코드 일뿐입니다. –