Програмування на C, C, Java
Функціяstrcmp() порівнює в лексикографічному порядку два рядки і повертає ціле значення, що залежить в такий спосіб від результату порівняння.
ЗначенняРезультат порівнянняМенше нуляstr1 менше str2Нульstr1 дорівнює str2Більше нуляstr1 більше str2
Наступну функцію можна використовувати для перевірки пароля. У разі невдачі вона повертає нуль, а за успішного виконання — одиницю.
Коментарів: 0 +
У разі успішного виконання функціяwctomb()повертає кількість байтів, що містяться в багатобайтовому символі. У разі виникнення помилки повертається значення -1.
Якщо параметр out дорівнює нулю, функціяwctomb()повертає ненульове значення у випадку, коли багатобайтовий символ має кодування, яке залежить від територіально-мовних особливостей. В іншому випадку повертається нуль.
У версії С99 до параметрівout іinзастосований кваліфікаторrestrict.
У разі успішного виконання функціяwcstombs()повертає кількість байтів, поміщених у масив out. У разі виникнення помилки повертається значення -1.
Для передачі функції змінного числа аргументів спільно використовуються макросиva_arg, va_startтаva_end. Найпоширенішим прикладом функції, яка приймає змінну кількість аргументів, є функціяprintf(). Типva_listвизначений у заголовку .
Загальна процедура створення функції, яка може приймати змінну кількість аргументів, така:
Функція повинна мати принаймні один відомий параметр (може і більше), що вказується до змінного списку параметрів. (Такі параметри називаються також обов'язковими, а параметри, що йдуть за ними, — необов'язковими.)Крайній правий відомий параметр називаєтьсяlast_parm. (Він передує першому необов'язковому параметру.) Його ім'я використовується як другий параметр у зверненні до макросуva_start(). Щоб отримати доступ до будь-якого додаткового параметра, спочатку необхідно ініціалізувати покажчик-аргументargptr, звернувшись до макросу va_start(). (Іншими словами, необхідно зробити виклик va_start(argptr, ).) Після цього значення параметрів повертаються в результаті виклику макросу va_arg(). Як другий аргумент цього макросу (відповідного параметраtype), потрібно вказати тип наступного параметра. Нарешті, після прочитання всіх параметрів до повернення функції необхідно викликати макросva_end(), щоб гарантувати коректне відновлення стека. Якщо макросva_end()викликаний не буде, висока ймовірність аварійної відмови програми.
Якщо функціяsystem()викликається з нульовим покажчиком, вона повертає ненульове значення за умови доступності командного процесора і нуль інакше. (Програми, що виконуються в спеціальних середовищах, можуть не мати доступу до командного процесора.) Значення, що повертається функцією system() , визначається конкретною реалізацією. Але зазвичай повертається нуль за успішного виконання команди, а ненульове значення коду повернення означає наявність помилки.
Функціяstrtoull()додана до версії С99.
Функціяstrtoull()аналогічна функціїstrtoul()за винятком того, що вона повертає значення типуunsigned long long int. Якщо результат не може бути представлений як значення типуunsigned long long int, повертається значенняULLONG_MAX, а глобальна зміннаerrnoвстановлюється рівною значеннюERANGE,що свідчить про помилку через вихід результату межі представимых чисел. Якщо параметрstartне вказує на число, жодного перетворення не виконується і функція повертає нуль.
У версії С99 до параметрівstartтаendзастосований кваліфікаторrestrict.
Функціяstrtoul()працює таким чином:
"100 кліщів" то вона поверне значення
100L а параметр end буде вказувати на пробіл, що передує слову
"кліщів" Якщо результат не може бути представлений як довге ціле без знака, функціяstrtoul()повертає значенняULONG_MAX,а глобальна змінна errno встановлюється рівною значеннюERANGE, що свідчить про помилку через вихід результату за межі чисел. Якщо параметрstartне вказує на число, жодного перетворення не виконується і функція повертає нуль.
Функціяstrtoll()додана до версії С99.
Функціяstrtoll()аналогічна функціїstrtol()за винятком того, що вона повертає значення типуlong long int. Якщо результат не може бути представлений як значення типуlong long int, повертається або значення LLONG_MAX, або значенняLLONG_MIN, а глобальна змінна errno встановлюється рівною значеннюERANGE, що свідчить про помилку через вихід результату межі чисел. Якщо параметр start не вказує на число, жодного перетворення не виконується і функція повертає нуль.