|
Типы, операторы и выраженияКаждый раз, как найдено не-c, его копироваться на текущей позиции j, и только после этого j увеличены, чтобы быть готовым к следующему знаку. Это точный эквивалент if (s [i]! = c) { s [j] = s [i]; j + +; } Другой пример подобной конструкции происходит из функции getline, которую мы написали в Разделе 1, где мы можем заменить if (c == '\ n') { s [i] = c; + + I; } на компактнее if (c == '\ n') s [i + +] = c; В качестве третьего примера, рассмотрим стандартную функцию strcat (s, t), которая сцепляющее цепочку t с концом цепочки s. strcat предполагает, что s имеет достаточно места, чтобы сохранить комбинацию обеих цепочек. Так, как мы это написали, strcat не возвращает никакого значения; версия со стандартной библиотеки возвращает указатель на полученный цепочку. / * Strcat: сцепляющее t с концом s; s должен быть достаточно большим * / void strcat (char s [], char t []) { int i, j; i = j = 0; while (s [i]! = '\ 0') / * находит конец s * / i + +; while ((s [i + +] = t [j + +])! = '\ 0') / * копирует t * / ; } Одновременно с копированием t до s к ним применено постфиксный + +, чтобы удостовериться, что они в позиции для последующего прохождения через цикл. Упражнение 2-4. Напишите альтернативную версию squeeze (s1, s2), которая бы излучала каждый знак с s1, который совпадает с любым знаком s2. Упражнение 2-5. Напишите функцию any (s1, s2), которая возвращает первое положение в цепочке s1 одного из знаков цепочки s2, или -1, если ни не найдено. (Функция strpbrk из стандартной библиотеки осуществляет то же, только возвращает указатель на положение.) Продолжение статьи: ч.1 Продолжение статьи: ч.2 Продолжение статьи: ч.3 Продолжение статьи: ч.4 Продолжение статьи: ч.5 Продолжение статьи: ч.6 Продолжение статьи: ч.7 Продолжение статьи: ч.8 Продолжение статьи: ч.9 Продолжение статьи: ч.10 Продолжение статьи: ч.11 Продолжение статьи: ч.12 Продолжение статьи: ч.13 Продолжение статьи: ч.14 Продолжение статьи: ч.15 Продолжение статьи: ч.16 Продолжение статьи: ч.17 Продолжение статьи: ч.18 Продолжение статьи: ч.19 Другие статьи по теме: - Введение в c++- Типы, операторы и выражения - Функции и структура программ - Символьные массивы - Внешние переменные и область действия |
|
2006-2024 © SMTI.RU Главная страница | Связаться с нами |