제대로 만든 것 같은데 결과가 이상하네요.........
촉촉한 초코칩
질문 내용 :
제가 공부하면서 한번 임의로 만들어본 건데요
Hello라는 문자열을 배열에 저장해 놓고 함수 하나를 이용해서 scanf로 문자를 하나씩
입력 받아 문자열 배열의 각 요소별 문자를 바꿔주고 그 것을 다시 출력 해주려고 합니다.
근데 이상하게 실행은 되는데 결과가 영 이상하더라구요....
#include stdio.h
void farr(char *pArr, int size);
int main(void)
{
char arr[]=Hello;
int size;
size=sizeof(arr)/sizeof(char);
printf(변경전: %s \n, arr);
farr(arr, size);
printf(변경후: %s \n, arr);
return 0;
}
void farr(char *pArr, int size)
{
int i;
for(i=0; isize-1; i++) // 널 문자 앞까지만 변경할려고 size-1을 했습니다.
{
scanf(%c, &pArr[i]); -----이 부분에 문제가 있어 보이는데 이렇게 문자를 받으면 안되는 건가요??
}제 생각에는 입력하는 문자로 바뀔 것 같은데 말입니다.....
}
-
꽃가람 2023-10-04
새로 입력받은 문자가 다시 배열에 기입되어 출력됩니다.
새로 입력하신 문자열이 더 길다면 원하는 출력 결과가 나오지 않겠지요.
어떤 결과를 원하시는지 말씀하시면 보다 많은 도움을 드릴수 있을듯...하네요 ^^ -
벛꽃 2023-10-04
\이상한 결과\를 명확하게 말해보세요.
farr함수의 for문에서 i size - 1이 아니라 i size라고 적어도 됩니다.