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

СИМВОЛЬНЫЕ CTРOKИ     

СИМВОЛЬНЫЕ CTРOKИ     

Символьные строки представляют один из наиболее полезных и важных типов данных языка Си. Хотя до сих пор все время применялись символьные строки, мы еще не все знаем о них. Конечно, нам уже известно самое главное: символьная строка является массивом типа char, который заканчивается нуль-символом (''). В этой главе мы больше узнаем о структуре строк, о том, как описывать и инициализировать строки, как их вводить или выводить из программы, как работать со строками.

     На рис. 13.1 представлена работающая программа, которая иллюстрирует несколько способов создания строк, их чтения и вывода на печать. Мы используем две новые функции: gets( ), которая получаст строку, и puts( ), которая выводит строку. (Вы, вероятно, заметили сходство их имен с функциями getchar( ) и putchar( ).) В остальном программа выглядит достаточно привычно.

/* работа со строками */

#include <stdio.h>

#deline MSG  "У вас, наверное, много талантов.

                 Расскажите о некоторых" .

/* константа символьной строки */

#define NULL 0

#define LIM 5

#define LINLEN 81 /* максимальная длина строки + 1 */

char ml[ ] = " Только ограничьтесь одной строкой.";

/* инициализация внешнего символьного массива */

char *m2 = " Если вы не можете вспомнить что-нибудь, придумайте.";

/* инициализация указателя внешнего символьного массива */

main( )

{

char name[LlNLEN];

static char talents[LINLEN];

int i;

int count = 0;

char *m3 = " n Достаточно обо мне -- Как вас зовут?";

/* инициализация указателя */

static char *mytal[LlM] = ("Быстро складываю числа",

                           "Точно умножаю",

                           "Записываю данные",

                           "Правильно выполняю команды",

                           "Понимаю язык Си"};

/* инициализация массива строк */

printf("Привет! Я Клайд, компьютер.

            У меня много талантов.n");

printf("%s n", "Позвольте рассказать о некоторых из них.");

puts(" Каковы они? Ах да, вот их неполный перечень.");

for(i = 0; i<LIM; i++)

puts(mytal[i]); /* печатает перечень талантов компьютера */

puts(m3);

gets(name);

printf(" Хорошо, %s, %sn" , name, MSG);

printf(" %sn %sn", m1, m2);

gets(talents);

puts(" Давайте, посмотрим, получил ли я этот перечень:");

puts(talents);

printf(" Спасибо за информацию, %s n" , name);

}

PИC. 13.1. Программа, использующая строки.

     Чтобы помочь вам разобраться в том, что делает эта программа, мы приводим результат ее работы:

Привет, я Клайд, компьютер. У меня много  талантов.

Позвольте рассказать о некоторых из них.

Каковы они? Ах  да, вот их неполный перечень.

Быстро складываю числа.

Точно умножаю.

Записываю данные.

Правильно выполняю команды команды.

Понимаю язык Си.

Достаточно обо мне - Как вас зовут? Найджел Барнтвит

Хорошо, Найджел Барнтвит, у вас, наверное, много талантов.

Расскажите о некоторых.

Только ограничтесь одной строкой.

Если вы не можете вспомнить что-нибудь, придумайте.

Фехтование, пение тирольских песен, симуляция, дегустация сыра.

Давайте посмотрим, получил ли я этот перечень.

Фехтование, пение тирольских песен, симуляция, дегустация сыра.

Спасибо за информацию, Найджел Барнтвит.

Тщательно исследуем программу. Но вместо того чтобы просматривать строку за строкой, применим более общий подход. Сначала рассмотрим способы определения строк в программе. Затем выясним, что нужно для чтения строки в программе. И наконец, изучим способы вывода строки.

Оглавление книги


Генерация: 1.306. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз