내 자신의 문자열 함수를 만들려고하는데이 시점에서 멈추는 것 같습니다. 아래는 내가 지금까지 문자열을 만들어 그것을 출력하고 크기를 반환하는 것입니다. 하지만 char뿐만 아니라 문자열 문자열 포인터를 전달하는 함수를 만들어야합니다 및 해당 문자열의 해당 char 발생 횟수를 반환합니다. 이 함수에서 make_string 함수를 호출하려고하지만 작동하도록 만들 수 없습니다. .h 파일에는 미리 나열된 기능 만 있습니다. 이것에 대한 도움을 주시면 감사하겠습니다. 감사!C에서 자체 문자열 함수를 만드는 방법은 무엇입니까?
#include "readLineUtilities.h"
int make_string(char **line)
{
char *a,b;
int i,size=0;
a = (char *) malloc(sizeof(char));
b = getchar();
while(b != '\n' && size < MAX)
{
*(a+size) = b; //remember at this point size = 0
size++;
b = getchar();
a = realloc(a,size+1);
}
*(a+size) = '\0'; //end of string marker so no need to return the size directly
*line = a;
return size;
}
int char_in_string (char *line, char c) {
make_string(*line);
}
void print_string(char *line, int size){
char *a;
int i;
a = line;
for (i=0;i<size;i++)
printf("%c",*(a+i)); //no end of line
printf("\n");
}
int length_string(char *line){
int size = 0;
char *c,b;
c = line;
if (c == NULL){
printf("line is null\n");
return size;
}
while (*(c + size) != '\0'){
size++;
}
return size;
}
* 왜 * 당신이 이것을하려고하는지 설명 할 수 있습니까? 'printf()'와'getchar()'을 사용하기 때문에 내장 문자열 함수를 사용하는 것을 피할 수는 없습니다. 그리고'make_string()'에서'realloc()'호출의 수는 우스꽝 스럽기 때문에 성능을 낼 수는 없습니다. 그래서 너는 무엇을하려고하는거야? –