Я пытаюсь получить строку за строкой из строки (char *). Я попытался реализовать его из того, что я читал в Интернете, но он не работает. Я написал этот тестовый код, чтобы заставить его работать вне моего кода проекта, и он все еще не работает (seg faults при первом вызове readline).Как получить строку из строки?
Заранее благодарим за любую помощь!
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
static void parse_message(char *message);
static void readline(char *message, char *line, int *counter);
int main(int argc, char *argv[]){
printf("starting\n");
char *message1 = "Chat {\nHey what's up do you like zebras?\n}\n";
parse_message(message1);
printf("Finished\n");
return EXIT_SUCCESS;
}
static void parse_message(char *message){
char *line = (char *) malloc (50 * sizeof(char));
int *counter = 0;
readline(message, line, counter);//read in first line
if(strcmp(line, "CHAT {") == 0){
readline(message, line, counter); //read in message
printf("%s",message); //print message
readline(message,line,counter); //read in close bracket
} else{
printf("Error occurred\n");
}
}
static void readline(char *message, char *line, int *counter){
int index = 0;
while(message[*counter] != '\n'){
line[index] = message[*counter];
counter++;
index ++;
}
}
Вы говорите о ошибке сегментации, но я запустить его и он печатается «произошла ошибка» – kirugan