|
||||
Функции работы со строками.Функции работы со строками. Для лексикографического сравнения строк используются функции int strcmp(строка1, строка2) и int stricmp(строка1, строка2). Первая сравнивает строки с учетом регистра, вторая – без. Все это относится только к латинице. Пример использования функции сравнения строк: char s[80];
printf("Введите пароль: "); gets(s);
if(strcmp(s, "pass")) printf("Неверный пароль\n");
Для вычисления длины строки используется функция strlen (строка). Функция возвращает длину строки за вычетом нулевого байта. Эта функция полезна в случаях, если вам нужно последовательно обратиться ко всем символам строки, не нарушив при этом ее длину. Пример: char len; len=strlen(str); for (i=0;i<len;i++) { // работа со строкой, не изменяющая ее длину } Зачастую требуется преобразовать число в строку и наоборот. Есть несколько способов сделать это. 1) использовать функции sprintf и sscanf. Например, так:
Функция int sprintf(строка, формат, [аргументы]) работает аналогично printf(), но выводит отформатированное содержимое не на экран, а в строку, указанную в качестве первого аргумента. Функция возвращает значение, равное числу символов, записанных в строку. Пример: char buffer [50]; int n, a=5, b=3; n=sprintf (buffer, "%d plus %d is %d", a, b, a+b); printf ("[%s] is a %d char long string\n",buffer,n); Функция int sscanf(строка, формат, [аргументы]) осуществляет считывание данных из строки и запись в аргументы в соответствии с форматом. Как и в обычной функции scanf(), перед аргументами ставится &. Хотя sprintf и sscanf довольно удобны, у них есть несколько недостатков. Во-первых, они не всегда быстро работают, во-вторых не типобезопасны. Например, если в строке формата вы укажите, что передаете два целых, а вместо этого передадите два double, ошибка обнаружится только при выполнении программы и найти ее причину будет не так-то просто. В-третьих, доступно целое семейство функций atof, atoi, atol и itoa, ltoa. Все они очень похоже между собой. Функции из первой группы преобразуют строку в число (float, int или long) в зависимости от окончания. Функции из второй группы выполняют обратное преобразование. Пример (первый аргумент функции – число, второй аргумент – строка, третий аргумент – основание системы счисления):
|
||||
|