@SaddledSharp
Кодер. Увлекаюсь информационной безопасностью.

Не получается перебрать имена файлов и найти определённый формат?

Здравствуйте, у меня проблема. Мне нужно найти файл ".py", я делаю вот так:
for (unsigned short index = 0; index < strlen(fileName); index++) {
        if(fileName[index] == ".py") {
            printf("Yes!");
        }
    }

Выводит ошибку:
warning: comparison between pointer and integer
         if(fileName[index] == ".py") {

Я гуглил, находил ответ - "нужно писать не в двойных ковычках, а одинарных", но логично, что если я напишу в одинарных ковычках 3 буквы - выбьет ошибку, ведь одинарные ковычки - это ОДИН символ.
В общем, не нашел ответа, вот фулл код:
int main() {
    char fileName[BUF] = { 0 };
    FILE *check = popen("ls", "r");
    if (check != NULL) {
        while(fgets(fileName, BUF, check) != NULL) {
            puts(fileName);
        }
    }
    else {
        printf("Error!");
    }
    fclose(check);
    for (unsigned short index = 0; index < strlen(fileName); index++) {
        if() {
            printf("Yes!");
        }
    }
	return 0;
}
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
@vanyamba-electronics
unsigned int len = strlen(fileName);
for (unsigned short index = 0; index < len; index++) {
        if(strstr(fileName, ".py") == len - 3) {
            printf("Yes!");
        }
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы