Я использую следующий метод для сравнения двух версий одного и того же файла.strcmp неправильное использование?
fprintf(stdout, "ref_ptr %s\n", str);
fprintf(stdout, "cur_ptr %s\n", cur);
if (strcmp(cur, str) < 0)
{
fprintf(stderr,"Error: bad version!\n");
return -1;
}
Выход:
ref_ptr
01.100
01.020.21
cur_ptr
01.100
01.000.46
Error: bad version!
В данном конкретном случае дворняжка не больше ул, почему?
Он отлично работает, когда
ref_ptr
01.100
01.000.42
Однако в первом случае я хотел бы рассмотреть 46> 21
Что такое 'str' и' cur'? (Извините, но я не знаком с '% r'. И, кстати, почему вы используете древний'% r' вместо стандартного 'vfprintf'?) –
, но' 000' меньше, чем '020 'не так ли? и [strcmp] (http://www.cplusplus.com/reference/cstring/strcmp/) перестает сравнивать при первом несоответствии – UnholySheep
@ AndreaCorbellini извините. Это была моя ошибка, когда я написал вопрос. Это% s – ogs