char *name[] = {"Неправильный месяц", "Янв", "Февр", "Март"};
с объявлением и рисунком для двумерного массива:
char aname[][15] = {"Неправ. месяц", "Янв", "Февр", "Март"};
Упражнение 5.9. Перепишите программы
5.10 Аргументы командной строки
В операционной среде, обеспечивающей поддержку Си, имеется возможность передать аргументы или параметры запускаемой программе с помощью командной строки. В момент вызова
Простейший пример - программа
echo Здравствуй, мир!
Напечатает
Здравствуй, мир!
По соглашению
Первая версия программы
#include ‹stdio.h›
/* эхо аргументов командной строки: версия 1 */
main(int argc, char *argv[])
{
int i;
for (i = 1; i ‹ argc; i++)
printf("%s%s", argv[i], (i ‹ argc-1) ? " " : ");
printf("\n");
return 0;
}
Так как
#include ‹stdio.h›
/* эхо аргументов командной строки; версия 2 */
main(int argc, char *argv[])
{
while (--argc › 0)
printf("%s%s", *++argv, (argc › 1) ? " " : ");
print f("\n");
return 0;
}
Аргумент
printf((argc › 1)? "%s ": "%s", *++argv);
Как видим, формат в
В качестве второго примера возьмем программу поиска образца, рассмотренную в параграфе 4.1, и несколько усовершенствуем ее. Если вы помните, образец для поиска мы "вмонтировали" глубоко в программу, а это, очевидно, не лучшее решение. Построим нашу программу по аналогии с
#include ‹stdio.h›
#include ‹string.h›
#define MAXLINE 1000
int getline(char *line, int max);
/* find: печать строк с образцом, заданным 1-м аргументом */
main(int argc, char *argv[])
{
char line[MAXLINE];
int found = 0;
if (argc != 2)
printf("Используйте в find образец\n");
else
while (getline(line, MAXLINE) › 0)
if (strstr(line, argv[1]) ›= NULL) {
printf ("%s", line);
found++;
}
return found;
}
Стандартная функция