с было очень полезным, я хотел сказать, что рад, что это сообщение было доступно, и показать, что я смог сделать с примерами. Мне нужно было токенизировать строку большего размера, а затем взять подстроку (ы) и найти последнюю - чтобы я мог удалить новую строку из вызова fgets (), а также удалить пробелы из передней части этого токена - чтобы я мог легко сравнить его со статической строкой. Первый пример в посте выше привел меня туда, так что спасибо. Вот как я использовал примеры кода и полученный результат.
int _tmain(int argc, _TCHAR* argv[])
{
FILE * fp; // test file
char currDBSStatstr[100] = {"/0"};
char *beg;
char *end;
char *str1;
char str[] = "Initializing DBS Configuration";
fp = fopen("file2-1.txt","r");
if (fp != NULL)
{
printf("File exists.\n");
fgets(currDBSStatstr, sizeof(currDBSStatstr), fp);
}
else
{
printf("Error.\n");
exit(2);
}
//print string
printf("String: %s\n", currDBSStatstr);
//extract first string
str1 = strtok(currDBSStatstr, ":-");
//print first token
printf("%s\n", str1);
//get more tokens in sequence
while(1)
{
//extract more tokens in sequence
str1 = strtok(NULL, ":-");
//check to see if done
if (str1 == NULL)
{
printf("Tokenizing Done.\n");
exit(0);
}
//print string after tokenizing Done
printf("%s\n", str1);
end = str1 + strlen(str1) - 1;
while((end > str1) && (*end == '\n'))
{
end--;
*(end+1) = 0;
beg = str1;
while(isspace(*str1))
str1++;
}
printf("%s\n", str1);
if (strcmp(str, str1) == 0)
printf("Strings are equal.\n");
}
return 0;
}
выход
Файл существует.
Строка: DBS Состояние: запуск DBS - инициализация конфигурации DBS
Состояние DBS
Запуск DBS
Запуск DBS
Инициализация конфигурации DBS
Инициализация конфигурации DBS
Строки равны.
Токенизация завершена.