배열크기를 입력받아서 소문자를 대문자로 바꾸는 프로그램인데 안돌아가네요.
도널드
2023.04.01
질문 제목 : 배열크기를 입력받아서 소문자를 대문자로 바꾸는 프로그램인데 안돌아가네요. 도와주세요.어디가 잘못 된건지 모르겠어요. 소스코드 올리겠습니다.질문 내용 : #include stdio.h
#include stdlib.h
int main(void)
{
int i, num;
int *arr;
char input;
printf(배열의크기를입력하세요: );
scanf(%d, &num);
printf(문자열을 입력하세요: );
scanf(%s, &input);
arr = (int*)malloc(sizeof(int)*num);
if(97=input=122)
{
for(i=0 ; i*arr ; i++)
{
input = input - 32;
printf(%s, input);
}
}
else
{input=input;
printf(%s, input);
}
free(arr);
return 0;
}
-
모이
일단 테스트는 안해봐서 정확한 답변은 드리기가 힘드네요
참고로... 배열의 크기를 사용자가 직접 입력하여, 임의의 크기로 적용할 수 없습니다.
malloc함수는 메모리를 할당해주는 역할을 합니다.(즉.. 용어를 잘못 사용하셨네요..)
그러므로 int *arr의 사용은 잘못되었습니다.
그리고 *arr의 사용의도가 무엇인지 자세히 알수가 없습니다....
아마도 문자열을 입력받고 그 문자열의 크기만큼 반복문을 적용하시려는거 같은데...
이것 또한 잘못 적용