Вы устанавливаете первый найденный символ "
на нулевой символ, заканчивая строку.
Также в стороне, но line[i-1]
может вызвать ошибку сегментации при i == 0
илиможет содержать \
, и в этом случае первая кавычка не будет удалена.
Что-то подобное сделает то, что вы хотите:
char *lineWithoutQuotes = malloc(strlen(line));
int i, j;
if(line[0] != '"')
lineWithoutQuotes[0] = line[0];
for(i = j = 1; i < strlen(line); i++){
if(line[i] == '"' && line[i-1] != '\\')
continue;
lineWithoutQuotes[j++] = line[i];
}