Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторн_робот_Ч2.doc
Скачиваний:
19
Добавлен:
03.11.2018
Размер:
2.12 Mб
Скачать

Функція аналогічна до stpcpy, strncpy

Приклад:

/*strcpy.cpp*/

#include<stdio.h>

#include<string.h>

main()

{

char src[80] = “abcdefghij”;

char dst[80] = “1234567890”;

printf(“До: джерело==%s приймач==%s\n”, src, dst);

puts(“Викликаємо strcpy(приймач, джерело)”);

strcpy(dst, src);

printf(“Після: джерело==%s приймач==%s\n”, src, dst);

return 0;

}

4.7 Функція _strdate - запам'ятовує поточну дату у вигляді стрічки у форматі mm/dd/yy (mm – місяць, dd – день, yy – рік. Повертає datestr, (time.h)

Синтаксис: char *_strdate(cha *datestr);

Параметри:

- char *datestr - вказівник на результуючу стрічку довжиною принаймні 9 байтів.

Функція аналогічна до asctime, ctime, _strtime, time

Приклад:

/*_strdate.cpp*/

#include<stdio.h>

#include<time.h>

main()

{

char sdate[9];

_strdate(sdate);

printf(“: %s\n”, sdate);

return 0;}

4.8 Функція _strerror - створює зі стрічки s стрічку повідомлення про помилку, додаючи двокрапку, пробіл і опис поточної системної помилки (string.h чи stdio.h).

Синтаксис: char *_strerror(const char *s);

Параметри:

- const char *s - повідомлення користувача про помилку довжиною не більше 94 символів, до якого додається повідомлення про системну помилку. Якщо цей вказівник дорівнює нулю, _strerror() повертає вказівник на стрічку повідомлення про помилку із самим останнім кодом помилки.

Функція аналогічна до perror, strerror

Приклад:

/*_strerror.cpp*/

#include<stdio.h>

#include<string.h>

main()

{

char *p = _strerror(“Перевірочне повідомлення про помилку”);

printf(“Повідомлення про помилку == %s\n”, p);

p = _strerror(NULL);

printf(“Сама остання помилка == %s\n”, p);

return 0;

}

4.9 Функція strftime - форматує дату і час у вигляді текстової стрічки, використовуючи систему правил перетворення, аналогічну системі printf(). Форматна стрічка fmt містить одне чи декілька правил, що заміняються компонентами дати і часу. Крім того, форматна стрічка може також містити й інші символи, що не відносяться до правил перетворення. Повертає число символів, записаних у результуючу стрічку(time.h). Правило перетворення складається зі знака відсотка (%) і символу.

Таблиця 13.2 - Правила перетворення для strftime()

Правила перетворення

Компоненти дати і часу

%

Вставити знак відсотка (%)

A

День тижня (абревіатура: Sun, Mon і т.д.)

A

Повна назва дня тижня

B

Місяць (абревіатура: Jan, Feb і т.д.)

B

Повна назва місяця

с

Дата і час у форматі asctime()

d

День місяця (від 01 до 31)

H

Час в 24-годинному форматі (від 00 до 23)

I

Час в 12-годинному форматі (від 00 до 12)

j

День року (від 001 до 366)

m

Номер місяця (від 1 до 12)

M

Хвилина (від 00 до 59)

Таблиця 13.2 - Правила перетворення (продовження)

p

Букви АМ чи РМ (що позначають час до чи після півдня відповідно)

S

Секунда (від 00 до 59)

U

Номер тижня (від 00 до 53) (тиждень починається із неділі)

w

День тижня (від 0 до 6) (неділя == 0)

W

Номер тижня (від 00 до 53) (тиждень починається з понеділка)

x

Дата

X

Час

y

Рік мінус сторіччя (наприклад, 68 для 1968)

Y

Повний рік (наприклад, 1968)

Z

Найменування часової зони (EST чи EDT)

Синтаксис : size_t strftime(char *s, size_t maxsize, const char *fmt, const struct tm *t);

Параметри:

- char *s - вказівник на результуючу стрічку, в якій запам'ятовується результат функції.

- size_t maxsize - максимальне число символів, записуваних у результуючу стрічку. Звичайно встановлюється рівним розміру стрічки мінус одиниця.

- const char *fmt -вказівник на форматну стрічку, що містить звичайний текст і правила перетворення .

- const struct tm *t - вказівник на структуру типу tm, що містить дату і час, форматуємі у стрічку.

Функція аналогічна до asctime, ctime, localtime, mktime, time

Приклад:

/*strftime.cpp*/

#include<stdio.h>

#include<time.h>

#define SIZE 80

main()

{

time_t t;

struct tm *tp;

char s[SIZE];

time(&t);

tp = localtime(&t);

puts(“”);

strftime(s, SIZE, “Дата: %x\n”, tp);

puts(s);

strftime(s, SIZE, “Час: %x\n”, tp);

puts(s);

strftime(s, SIZE, “Сьогодні %A\n”, tp);

puts(s);

return 0;

}

4.10 Функція strncpy,_fstrncpy - копіює максимум maxlen символів із вихідної стрічки src у результуючу стрічку dest, перезаписуючи символи результуючої стрічки. Якщо maxlen дорівнює розміру в байтах результуючій стрічці (і вихідна стрічка має не меншу довжину), то результуюча стрічка не завершується нульовим символом. Якщо maxlen і довжина вихідної стрічки перевищують розмір результуючої стрічки, кінець результуючої стрічки перезаписується, що, можливо, зруйнує інші дані чи код у цьому місці пам'яті. Щоб уникнути подібних помилок, ніколи не встановлюйте maxlen більше максимального числа символів, що може, містити результуюча стрічка(string.h)

Синтаксис: char *strncpy (char *dest, const char *src, size _t maxlen);

char far *far _fstrncpy (char far *dest, const char far *src, sizе _t maxlen);

Параметри:

- char *dest - покажчик на результуючу стрічку, що містить мінімум maxlen байтів

- const char *src - покажчик на вихідну стрічку, яку копіюємо в результую-чу.