#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int sortstring(const void *str1, const void *str2) {
const char *rec1 = str1;
const char *rec2 = str2;
}
void sortutil(char* lines[]) {
qsort(lines, 200, sizeof(char), sortstring);
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "sortutil.h"
int getarray(char *lines[]) {
int i = 0;
char *text = (char *)malloc(200);
while (fgets(text, 200, stdin) != NULL) {
lines[i] = text;
i++;
text = (char *)malloc(200);
}
return i;
}
void printarray(char *lines[], int max) {
for (int i = 0; i < max; i++)
printf("%s\n\n", lines[i]);
}
int main(int argc, char* argv[]) {
char* arr[100];
int numlines = getarray(arr);
printf("There are %d lines\n", numlines);
printarray(arr, numlines);
for (int i = 1; i < argc; i++) {
if (strcmp(argv[i], "-s") == 0) {
sortutil(arr);
printarray(arr, numlines);
}
}
}
, 그것은 파일을 읽고 그것을 밖으로 인쇄,하지만 난 -s를 호출하고 qsort
함수를 호출 할 때, 그것은 null로 돌아 오는 것입니다. qsort incorrectly
을 사용하고 있는데, 포인터를 배열에 사용할 때 올바른 방법은 무엇입니까?qsort를 문자열 배열에 사용하는 방법은 무엇입니까? 나는 임의의 텍스트 파일에 보낼 때
감사 대신 사용 '때문에 수 그게 작동 했어, 당신이 놓친 유일한 것은 str1과 str2를 (const char **) –
@ user3427042와 함께 넣는 것이었다. 실제로 나는 게시 된 코드 (duh)에서 올바른 유형을 놓쳤다. 그것은 지금 무엇이었을 것입니다. 미안합니다. 올바르게 끝나면 캐스트가 필요하지 않습니다. 그것을 잡아 주셔서 감사합니다. 기쁜 데 도움이되었습니다. – WhozCraig