기본적으로 쉼표로 구분 된 숫자를 추출 할 때 문자열에 충분한 공간을 할당하려고합니다. 어떻게해야합니까?길이를 모른 채 C로 문자열을 초기화하고 문자를 계속 추가 할 수 있습니까?
내 알고리즘은 색인 0에서 마지막 색인까지 문자열을 반복하고 각 숫자를 temp라는 문자열에 배치하고 쉼표를 찾을 때 문자열을 인쇄합니다. 당신은 몇 가지 옵션이
char* string = "123,4567,8910";
char* delimiter = ",";
size_t i;
// char temp[] = "" ???? supposed to be a dynamic string/array whatever
for (i = 0; i < strlen(string); i++) {
if (string[i] == ',') {
// printf("%s", temp);
// clear temp string
} else {
// append the character string[i] to temp
}
}
왜 이렇게 하시겠습니까? X Y 문제와 같은 잘못된 접근입니다. 이 문제를 해결하기위한 제한 사항과 그 원인을 알려주십시오. 그렇지 않으면 원하는대로 할 수있는 좋은 이유가 없습니다. 또한 쉼표를 찾을 때 단순히 문자열을 출력하려고한다면'fputc()'를 사용하고 발견 한 순간에 각 문자를 인쇄하고 쉼표로 출력 할 때는'\ n'을 사용하여 버퍼를 지 웁니다 다음 줄로 가라. –
첫 번째 문제는 [tag : c] 문자열을 이해하지 못하는 것입니다. 만약 당신이 그들을 이해한다면'for (i = 0; i