Array M. УЭИТ - Язык Си - руководство для начинающих

Тут можно читать онлайн Array M. УЭИТ - Язык Си - руководство для начинающих - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Мир, год 1988. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Язык Си - руководство для начинающих
  • Автор:
  • Жанр:
  • Издательство:
    Мир
  • Год:
    1988
  • Город:
    Москва
  • ISBN:
    5-03-001309-1 /русск./
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Array M. УЭИТ - Язык Си - руководство для начинающих краткое содержание

Язык Си - руководство для начинающих - описание и краткое содержание, автор Array M. УЭИТ, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
M. УЭИТ   С. ПРАТА    Д. МАРТИН
Язык Си — руководство для начинающих

Язык Си - руководство для начинающих - читать онлайн бесплатно полную версию (весь текст целиком)

Язык Си - руководство для начинающих - читать книгу онлайн бесплатно, автор Array M. УЭИТ
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

%fuss - r Ginger

Следует заметить, что программа на языке Си может вводить информацию в эти элементы и применять их для собственных нужд. Этот механизм предназначен для использования аргументов функции main( ). Вот типичный пример:

/* main( ) с аргументами */

main(argc, argv)

int argc;

char *argv[ ];

{

int count;

for(count = 1; count < argc; count++)

printf(" %s", argv[count]);

printf("\n");

}

Поместите эту программу в выполняющий файл, названный echo, и вот что произойдет:

А > echo

Я мог бы воспользоваться небольшой помощью.

Я мог бы воспользоваться небольшой помощью.

Вероятно, вы видите, почему функция называется echo, но еще не можете понять, как она работает. Может быть, это объяснение поможет вам (мы надеемся).

Компиляторы Си предполагают наличие у main( )двух аргументов. Первый аргумент представляет количество строк, следующих за командным словом. Обычно (но не обязательно) этот аргумент типа intназывается argc( argument count ). Система использует пробелы, чтобы сообщить о конце одной строки и начале следующей. Так, наш пример с echoимеет шесть строк, а пример с fussимел две строки. Второй аргумент является массивом указателей строк. Каждой строке, входящей в командную строку, присваивается ее

собственный указатель По соглашению этот массив указателей называется argv - фото 77

собственный указатель. По соглашению, этот массив указателей называется argv( argument values). Если можно (некоторые операционные системы не позволяют этого), элементу argv[0]присваивается имя самой программы. В этом случае аргументу argv[l]присваивается первая следующая строка и т. д. Для нашего примера имеем

argv[0] ссылается на echo (для большинства систем)

argv[1] ссылается на я

argv [2] ссылается на мог

argv [6] ссылается на помощью

Поскольку вы используете эти обозначения, то можете легко проследить остаток программы.

РИС 136 Аргументы командной строки Многие программисты используют для argvи - фото 78

РИС. 13.6. Аргументы командной строки.

Многие программисты используют для argvи другие обозначения:

main(arge, argv)

int arge;

char **argv;

Описание argvна самом деле эквивалентно char *аrgv[ ];. Читая его, вы могли бы сказать, что argvявляется указателем на указатель на тип char. Наш пример дает то же самое. У нас был массив из семи элементов. Имя массива является указателем на его первый элемент. Поэтому argvссылается на argv[0], a argv[0]является указателем на тип char. Следовательно, даже с исходным определением argvявляется указателем на указатель на тип char. Вы можете использовать любую из этих форм, но видно, что первая проще для понимания.

Очень часто аргументы командных строк используются для указания возможностей программы. Например, можно применять комбинацию символов - r, чтобы заставить программу выполнять сортировку в обратном порядке. Обычно альтернативы задаются при помощи дефиса и буквы, как - r. Эти "флажки" ничего нс означают в языке Си; вы должны сами запрограммировать их распознавание.

Вот очень простой пример, показывающий, как программа может проверять и использовать флажок.

/* обычное начало */

#define YES 1

#define NO 0

main(argc, argv)

int argc;

char *argv[ ];

{

float array[100];

int n;

int flag = NO;

if(argv[l][0] == '-' && argv[l][l] == 'r')

flag = YES;

...

if flag = NO

sort1(array, n);

else

sort2(array, n);

...

}

Эта программа проверяет первую строку после имени командного файла, чтобы посмотреть, начинается ли она с дефиса. Затем она проверяет, является ли следующий символ кодом буквы r. Если это так, то устанавливается флажок, приводящий к использованию другой программы сортировки. Строки после первой игнорируются. Как мы уже сказали, этот пример достаточно прост.

Если вы использовали систему UNIX, то, вероятно, заметили, что команды UNIX предоставляют разнообразные варианты командной строки и ее аргументов. Эти примеры показывают, как использовать аргументы командной строки языка Си, поскольку большая часть системы UNIX написана на языке Си.

Аргументы командных строк могут быть также именами файлов, и вы можете использовать их вместо операторов переключения, чтобы указать программе, над какими файлами надо работать. Мы покажем вам, как это делается, в гл. 15.

ЧТО ВЫ ДОЛЖНЫ БЫЛИ УЗНАТЬ В ЭТОЙ ГЛАВЕ

Как объявить строку символов: static char fun[ ]и т. д.

Как инициализировать строку символов: static char *p0 = "0!"

Как использовать gets( )и puts( )

Как использовать strlen( ), strcmp( ), strcpy( )и strcatf( )

Как использовать аргументы командной строки.

В чем сходство и различие описателей char *blissи char bliss[ ]

Как создать строковую константу: "используя кавычки".

ВОПРОСЫ И ОТВЕТЫ

Вопросы

1. Что неправильно в этой попытке описания символьной строки?

main( ) {

char name[ ] = {'F', 'с', 's', 's'};

2. Что напечатает эта программа?

#include

main( )

{

static char note[ ] = "До встречи в буфете." ;

char *ptr;

ptr = note;

puts(ptr);

puts(++ptr);

note[7] = '\0';

puts(note);

puts(++ptr);

}

3. Что напечатает эта программа?

main( )

{ static char food[ ] = "Йумми";

char *ptr;

ptr = food + strlen(food);

while(--ptr >= food) puts(ptr);

}

4. Что напечатает нижеследующая программа?

main( )

{

static char goldwyn[28] = " аз я считываю"

static char samuel[40] = " Каждый р" ;

char *quote = " часть строки."

strcat(goldwyn, quote);

strcat(samuel, goldwyn);

puts(samuel);

}

5. Создайте функцию, которая использует указатель строки в качестве аргумента и возвращает указатель, ссылающийся на первый пробел в строке в указанном месте или после него. Если она не находит ни одного пробела, то пусть возвращает NULL-указатель.

Ответы

1. Класс памяти должен быть extern или static; инициализация должна включать символ '\0'.

2.

До встречи в буфете.

о встречи в буфете.

До вст

вст

3.

и

ми

мми

умми

Йумми

4.

Каждый раз я считываю часть строки.

5.

char *strblk(string)

char *string; {

while(*string != ' ' && *string != '\0')

string++; /* останавливается на первом пробеле или нуль-символе */

if(*string == '\0')

return(NULL); /* NULL = 0 */

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Array M. УЭИТ читать все книги автора по порядку

Array M. УЭИТ - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык Си - руководство для начинающих отзывы


Отзывы читателей о книге Язык Си - руководство для начинающих, автор: Array M. УЭИТ. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x