- •Операції з рядками Довідка з функцій. (Не для друку)
- •Визначення довжини рядків
- •Копіювання рядків
- •Функція strcpy
- •Функція strncpy
- •Функція strdup
- •Конкатенація рядків
- •Функція strсat
- •Функція strncat
- •Порівняння рядків
- •Функція strcmp
- •Функції stricmp, strcmpi
- •Функції CharToOem
- •Зміна порядку символів рядка На зворотній
- •Функції перевірки діапазону
- •Пошук символів
- •Функція strchr
- •Функція strrchr
- •Функція strspn
- •Функція strcspn
- •Функція strpbrk
- •Пошук подстрок
- •Функція strstr
- •Функція strtok
- •Функції перетворення типу
- •Перетворення рядка в число Функції atoi і atol
- •Функції _atoi64
- •Функції atof
- •Функції strtod
- •Перетворення числа в рядок Функції _itoa і _ltoa
- •Функція gcvt
Перетворення рядка в число Функції atoi і atol
Синтаксис функцій atoi і atol має вигляд:
int atoi ( const char* ptr ) ;
int atol ( const char* ptr ) ;
Ці функції перетворять Ascilz-Рядок символів, на який вказує ptr, у число типу int і long відповідно. Робота цих функцій в 32нрозрядній моделі пам'яті не відрізняється. Якщо преутворене число перевищує діапазон значень типу int, функція поверне непередбачене значення. Наприклад:
char S [41] = "400000" ; // оголошення й ініціалізація рядка
int n ; // оголошення змінної типу int
n = atoi ( S ) ; // ініціалізація змінної значенням перетвореного рядка
cout << "n=" << n << '\n' ; // виводить на екран “400000”
strcat ( S, "0000" ) ; // додає в кінець рядка чотири нулі
long m; // оголошення змінної типу long
m = atoll ( S ) ; // ініціалізація змінної значенням перетвореного рядка
cout << "m=" << m << '\n' ; // виводить на екран “-294967296”
Функції _atoi64
Синтаксис функцій _atoi64 має вигляд:
__int64 _atoi64 ( const char* ptr ) ;
Ця функція перетворять Ascilz-Рядок символів, на який вказує ptr, у число типу __int64. Якщо преутворене число перевищує діапазон значень типу __int64, функція поверне непередбачене значення. Наприклад:
char S[41] = "7000000000" ; // оголошення й ініціалізація рядка
__int64 h ; // оголошення змінної типу __int64
h = _atoi64(S) ; // ініціалізація змінної значенням перетвореного рядка
printf ( "%I64d", h ) ; // виводить на екран “7000000000”
Функції atof
Функція atof, певна як
double atof(const char* ptr)
виконує перетворення Asciiz-Рядка в число із плаваючою крапкою типу double. Рядок символів повинна бути представлена з урахуванням формату:
[пробіли][знак][цифри][.][цифри][е|Е[знак]цифри],
де
пробіли – послідовність пробілів або табуляторів;
знак – символ '+' або '–' ;
цифри – десяткові цифри;
е|Е – символ показника ступені.
Перетворення символів припиняється, як тільки знайдений перший неконвертований символ або досягнутий кінець рядка. Приклад використання функції atof:
char S [41] = "12345e66" ; // оголошення й ініціалізація рядка
double d ; // оголошення змінної типу double
d = atof ( S ) ; // ініціалізація змінної значенням перетвореного рядка
cout << "d=" << d << '\n' ; // виводить на екран "d=1.2345e+070"
Функції strtod
Функція strtod перетворить рядок символів у число із плаваючою крапкою. Її синтаксис має такий вигляд:
double strtod ( const char *s, char **endptr) ;
Ця функція так само, як і функція atof, перетворить рядок, на який вказує s, у число типу double, з тим лише відмінністю, що у випадку припинення конвертування рядка повертає вказівник endptr на перший непреобразуемый символ. Це дозволяє організувати надалі обробку частини, що залишився, рядка. Приклад використання функції strtod:
char S [41] = "12345f66" ; // оголошення й ініціалізація рядка
double d ; // оголошення змінної типу double
char* Err ; // оголошення вказівника на рядок помилки
d = strtod ( S, &Err) ; // ініціалізація змінної значенням перетвореного рядка
// передача по вказівникові рядка помилки
cout << "d=" << d << '\n' ; // виводить на екран " d = 12345 "
cout << "Error=" << Err << '\n' ; // виводить на екран " Error = f66 "