Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Кроме поиска символов в строке, вы также можете поохотиться и за подстроками. Листинг 6.9 демонстрирует этот метод. Данная программа аналогична ЕХТ1, но устанавливает расширение файла.ТХТ.
Листинг 6.9. ЕХТ2.С (проверка расширения файла, демонстрация №2)
1: #include <stdio.h>
2: #include <string.h>
3:
4: main()
5: {
6: char flleName[128];
7: char *p;
8:
9: printf("Enter file name: ");
10: gets(fileNanie);
11: printf("As entered: %s\n", fileName);
12: strupr(fileName);
13: p = strstr(fileNaine, ".ТХТ");
14: if (p)
15: printf(“File.naine is complete\n");
16: else {
17: p = strchr(fileName; '.');
18: if (p)
19: *p = NULL; /* Удалить любое другое расширение */
20: strcat(fileName, ".ТХТ");
21: }
22: printf("Final file name: %s\n", fileName);
23; return 0;
24: }
_______________________________________________________
Новая программа создает имя файла, которое обязательно заканчивается расширением.ТХТ. Запустите программу ЕХТ2 и введите test или test.txt, что даст результат, аналогичный программе ЕХТ1. Но если вы введете test.с, программа ЕХТ2 отобразит следующее:
Enter file name: test.с
As entered: test.с
Final file name: TEST.TXT
Чтобы определить, есть ли в имени файла расширение.ТХТ, программа выполняет в строке 13 оператор
р = strstr(fileName, ".ТХТ");
Подобно strchr(), функция strstr() возвращает адрес подстроки или нуль, если искомая строка не найдена. Если же цель будет обнаружена, указатель р установится равным ее адресу, в данном примере - адресу точки в подстроке.ТХТ. Поскольку расширение может быть введено и строчными буквами, программа выполняет оператор
strupr(fileName);
чтобы перед вызовом функции strstr() преобразовать буквы оригинальной строки в прописные.
Программа ЕХТ2 также демонстрирует способ усечения строки в позиции заданного символа или подстроки. Строка 17 вызывает функцию strchr(), чтобы установить указатель р равным адресу первой точки в строке fileName. Если результат этого поиска не нулевой (строка 18), строка 19 выполнит оператор, который запишет вместо точки нулевой байт:
*р = NULL;
Тем самым будет присоединен новый конец строки в том месте, где раньше находилось расширение файла. Теперь строка готова к добавлению нового расширения путем вызова функции strcat() в строке 20.
Дата публикования: 2015-01-23; Прочитано: 190 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!