#c #token
Вопрос:
Я пытаюсь вернуть в консоль в C токен, который находится перед тем, в котором я сейчас нахожусь, в файл. Маркеры разделяются разделителями. Нужно ли мне внедрять какой-то счетчик?
Вот мой код.
#include <stdio.h>
#include <string.h>
int main (int argc, char **argv)
{
char line [1000];
char *delimeters = ".,; tn";
FILE *input = fopen (argv[2], "r");
while(fgets(line,1000,input) != NULL)
{
char *word = strtok(line, delimeters);
while(word != NULL)
{
if(word != NULL amp;amp; strcmp(word,"(") == 0)
{
printf("Enters IF 3n");
char *method_name = strtok(NULL, delimeters); //NEED BEFORE WORD
printf ("Method %sn", method_name);
}
Комментарии:
1. Разве вы не можете просто сохранить предыдущую в a
char *prev
?2. И как мне это записать? Потому что в то время, когда я ввожу оператор if, я уже нахожусь в следующем. Похоже на это «Что-то ()», я распечатываю»)», и я хочу «Что-то».
Ответ №1:
Хорошо, я понял, что вместо того, чтобы искать предыдущий токен после, я должен искать что-то раньше в операторе if. В любом случае, это какой-то сложный вопрос.
Пример: Method Return_type Something ();
Вместо того, чтобы искать (
, я должен искать Method
, а затем переходить к Something
«с strtok
«.