나는 인터뷰 질문을 탐색하고 포인터를 사용하여 문자열을 뒤집어 놓았습니다. 하지만 여기에서는 문자열 길이를 제한하는 char string [100]을 정의했습니다. 나는 C에별로 익숙하지 않습니다. 어떻게 수정하여 길이의 문자열로 만드나요? 대신 정적 배열 사용하는 동적 메모리 할당C에서 포인터를 사용하여 길이가 다른 문자열을 뒤집기
#include<stdio.h>
int string_length(char*);
void reverse(char*);
main()
{
char string[100];
printf("Enter a string\n");
gets(string);
reverse(string);
printf("Reverse of entered string is \"%s\".\n", string);
return 0;
}
void reverse(char *string)
{
int length, c;
char *begin, *end, temp;
length = string_length(string);
begin = string;
end = string;
for (c = 0 ; c < (length - 1) ; c++)
end++;
for (c = 0 ; c < length/2 ; c++)
{
temp = *end;
*end = *begin;
*begin = temp;
begin++;
end--;
}
}
int string_length(char *pointer)
{
int c = 0;
while(*(pointer+c) != '\0')
c++;
return c;
}
아마도 도움이 될까요? http://stackoverflow.com/questions/2505451/how-to-read-unlimited-characters-in-c –
'length' ('string_length'의 결과)를' 끝 '. – BLUEPIXY
이 부분은 문제가 아니므로 문자열 질문을 읽는 중 "역 문자열"질문이 아닙니다. – unkulunkulu