Programmisty-molodcy, ljubjat nas krasavicy
7. Сравнение двух строк: строки – первого аргумента и строки – второго аргумента
int strcmp(строка_1, строка_2) – возвращает
-1, если строка_1 < строка_2,
0, если строка_1 = строка_2,
1, если строка_1 > строка_2
Сравнение производится посимвольно слева направо до первых несовпадающих символов строк.
char str_1[20]=”programmist”;
char str_2[20]=”programmirovanie”;
int k;
k = strcmp(str_1, str_2);
Переменная k примет значение 1, так как первая строка больше (не длиннее!) второй.
8. Переворот строки:
char *strrev(строка) – возвращает указатель на строку:
char str_1[10]=”programma”;
char *str;
str = strrev(str_1);
printf(“\n%s”, str);
На экране появится сообщение:
Ammargorp
9. Копирование одной строки в другую:
char *strncpy(строка_1, строка_2, k) – заменяет k первых символов строки_1 на k первых символов строки_2 и возвращает указатель на строку:
char str_1[50]="pervokursnik";
char str_2[50]="vtoroj kurs";
char *str;
int k=5;
str = strncpy(str_1, str_2, k);
printf(“\n%s”, str);
На экране появится сообщение:
Vtorokursnik
Эта функция не требует операции присваивания слева от себя. При этом выходным параметром является первый аргумент функции:
char str_1[50]="pervokursnik";
char str_2[50]="vtoroj kurs";
int k=5;
strncpy(str_1, str_2, k);
printf(“\n%s”, str_1);
На экране появится сообщение:
Vtorokursnik
10. Преобразование строки в вещественное число (float или double):
float atof(строка) – возвращает вещественное число:
float x;
str="3.1416";
x=atof(str);
printf("\n str = %s", str);
printf("\n x = %6.4f", x);
На экране появится сообщение:
str = 3.1416
x = 3.1416
Если в преобразуемой строке встречается некорректный символ, то преобразование идет до него, и сообщение об ошибке не выдается:
float x;
str="3.14a6";
x=atof(str);
printf("\n str = %s", str);
printf("\n x = %6.4f", x);
На экране появится сообщение:
str = 3.14a6
x = 3.1400
11. Преобразование строки в целое число:
int atoi(строка) – возвращает целое число:
int i;
str="12345";
i=atoi(str);
printf("\n str = %s", str);
printf("\n i = %d", i);
На экране появится сообщение:
str = 12345
i = 12345
Если в преобразуемой строке встречается некорректный символ, то преобразование идет до него, и сообщение об ошибке не выдается:
int i;
str="12a45";
i=atoi(str);
printf("\n str = %s", str);
printf("\n i = %d", i);
На экране появится сообщение:
str = 12a45
i = 12
12. Преобразование строки в длинное целое число:
int atol(строка) – возвращает длинное целое число:
long k;
str="1234567890";
k=atol(str);
printf("\n str = %s", str);
printf("\n k = %d", k);
На экране появится сообщение:
str = 1234567890
k = 1234567890
Если в преобразуемой строке встречается некорректный символ, то преобразование идет до него, и сообщение об ошибке не выдается:
long k;
str="12a4567890";
k=atol(str);
printf("\n str = %s", str);
printf("\n k = %d", k);
На экране появится сообщение:
str = 12a4567890
k = 12
13. Преобразование целого числа в строку. При преобразовании задается основание системы счисления от 2 до 32:
char itoa(число, строка, основание) – возвращает указатель на строку:
int i=12345;
char *str;
itoa(i, str, 10); // оператор присваивания не нужен!
printf("\n i = %d", i);
printf("\n str = %s", str);
На экране появится сообщение:
i = 12345
str = 12345
Преобразуем число в шестнадцатеричную систему счисления:
int i=23456;
char *str;
itoa(i, str, 16);
printf("\n i = %x", i);
printf("\n str = %s", str);
На экране появится сообщение:
i = 5BA0
str = 5BA0
14. Преобразование длинного целого числа в строку. При преобразовании задается основание системы счисления от 2 до 32:
char ltoa(число, строка, основание)– возвращает указатель на строку:
long i=1234567890;
char *str;
ltoa(i, str, 10);
printf("\n i = %d", i);
printf("\n str = %s", str);
На экране появится сообщение:
i = 1234567890
str = 1234567890
Преобразуем это же число в шестнадцатеричную систему счисления:
long i=1234567890;
char *str;
ltoa(i, str, 16);
printf("\n i = %x", i);
printf("\n str = %s", str);
На экране появится сообщение:
i = DFB38D2
str = DFB38D2
Учебное издание
Лучников Владимир Александрович
ПРОГРАММИРОВАНИЕ
НА ЯЗЫКЕ СИ
Учебное пособие
Редактор В. С. Смирнова
Компьютерный набор – В. А. Лучников
Подписано в печать 4.12.2014
Уч.-изд. л. 10,99. План 2014 г.
![]() |