- •Алгоритмічні мови та програмування. Елементи професійного програмування
- •Синтаксис: int strcmpi(const char *s1, const char*s2)
- •Функція аналогічна до strchr(), strcmp(), strcoll(), stricmp(), strncmp(), strnicmp() Приклад 6.5.:
- •Приклад 6.10.:
- •Навчальне видання
- •Алгоритмічні мови та програмування. Елементи професійного програмування
- •Навчально-методичний відділ внту
- •21021, М. Вінниця, Хмельницьке шосе, 95, внту
- •Вінницького національного технічного університету
- •21021, М. Вінниця, Хмельницьке шосе, 95, внту
- •Алгоритмічні мови та програмування. Елементи професійного програмування
Синтаксис: int strcmpi(const char *s1, const char*s2)
Параметри:
- const char *s1 - вказівник на першу порівнювану стрічку.
- const char *s2 - вказівник на другу порівнювану стрічку
Функція аналогічна до strchr(), strcmp(), strcoll(), stricmp(), strncmp(), strnicmp() Приклад 6.5.:
/*strcmpi.cpp*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main(int argc, char *argv[])
{
char *p;
if (argv <= 2)
{
puts(“Введіть дві стрічки, що порівнюються без урахування різниці між стрічковими і прописними літерами”);
puts(“Наприклад, STRCMPI стрічкаа стрічкаб”);
exit(1);
}
int result = strcmpi(argv[1], argv[2]);
if (result < 0)
p = ”менше”;
else if (result > 0)
p = “більше”;
else
p = “дорівнює”;
printf(“%s %s %s”, argv[1], p, argv[2]);
return 0;
}
Функція strcpy() - копіює вихідну стрічку src і завершуючий її нульовий символ у стрічку результату dst, перезаписуючи символи результуючої стрічки, розташовані в місці копіювання. Повертає dest. (string.h)
Синтаксис: char *strcpy(char *dest,const char *src);
char far * far _fstrcpy(char far *dest, const char far *src);
Параметри:
- char *dest - вказівник на стрічку результату, що перезаписується вихідною стрічкою. Результуюча стрічка не обов'язково повинна бути ініціалізованною.
- const char *src - вказівник на вихідну стрічку, що завершується нульовим символом.
Функція аналогічна до stpcpy(), strncpy()
Приклад 6.6.:
/*strcpy.cpp*/
#include<stdio.h>
#include<string.h>
main()
{
char src[80] = “abcdefghij”;
char dst[80] = “1234567890”;
puts(“Викликаємо strcpy(приймач, джерело)”);
strcpy(dst, src);
printf(“Gіckz^ l;thtkj==%s ghbqvfx==%s\n”? src? dst);
return 0;
}
Функція strdate() - запам'ятовує поточну дату у вигляді стрічки у форматі mm/dd/yy (mm – місяць, dd – день, yy – рік. Повертає datestr, (time.h)
Синтаксис: char *_strdate(cha *datestr);
Параметри:
- char *datestr - вказівник на результуючу стрічку довжиною принаймні 9 байтів.
Функція аналогічна до asctime(), ctime(), strtime(), time()
Приклад 6.7.:
/*_strdate.cpp*/
#include<stdio.h>
#include<time.h>
main()
{
char sdate[9];
_strdate(sdate);
printf(“: %s\n”, sdate);
return 0;}
Функція strerror() - створює зі стрічки s стрічку повідомлення про помилку, додаючи двокрапку, пробіл і опис поточної системної помилки (string.h чи stdio.h).
Синтаксис: char *_strerror(const char *s);
Параметри:
- const char *s - повідомлення користувача про помилку довжиною не більше 94 символів, до якого додається повідомлення про системну помилку. Якщо цей вказівник дорівнює нулю, _strerror() повертає вказівник на стрічку повідомлення про помилку із самим останнім кодом помилки.
Функція аналогічна до perror(), strerror()
Приклад 6.8.:
#include<stdio.h>
#include<string.h>
main()
{
char *p = _strerror(“Перевірочне повідомлення про помилку”);
printf(“Повідомлення про помилку == %s\n”, p);
p = _strerror(NULL);
printf(“Сама остання помилка == %s\n”, p);
return 0;
}
Функція strftime() - форматує дату і час у вигляді текстової стрічки, використовуючи систему правил перетворення, аналогічну системі printf(). Форматна стрічка fmt містить одне чи декілька правил, що заміняються компонентами дати і часу. Крім того, форматна стрічка може також містити й інші символи, що не відносяться до правил перетворення. Повертає число символів, записаних у результуючу стрічку(time.h). Правило перетворення складається зі знака відсотка (%) і символу.
Таблиця 6.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) |
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().
Приклад 6.9.:
#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;
}
Функція strncpy(), fstrncpy() - копіює максимум maxlen символів із вихідної стрічки src у результуючу стрічку dest, перезаписуючи символи результуючої стрічки. Якщо maxlen дорівнює розміру в байтах результуючій стрічці (і вихідна стрічка має не меншу довжину), то результуюча стрічка не завершується нульовим символом. Якщо maxlen і довжина вихідної стрічки перевищують розмір результуючої стрічки, кінець результуючої стрічки перезаписується, що, можливо, зруйнує інші дані чи код у цьому місці пам'яті. Щоб уникнути подібних помилок, ніколи не встановлюйте maxlen більше максимального числа символів, що може, містити результуюча стрічка(string.h)
Функція аналогічна до strcat(), strcpy()