Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Топ:
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Интересное:
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Перечень функций приведен на рис. 17.
| Прототип | Описание функции |
| char *scrcpy (char *s1, const char *s2) | |
| Копирует строку s2 в массив s1. Возвращает значение s1. | |
| char *strncpy (char *s1, const char *s2, size t n) | |
| Копирует не более чем n символов строки s2 в массив s1. Возвращает значение s1 | |
| char *strcat (char *sl, const char *s2) | |
| Объединяет строку s2 со строкой массива s1. Первый символ строки s2 переписывает символ NULL строки s1. Возвращает значение s1. | |
| char strncat (char *sl, const char *s2, size t n) | |
| Объединяет не более чем n символов строки s2 со строкой массива s1. Первый символ строки s2 переписывает символ NULL строки s1. Возвращает значение s1. | |
Рис. 17. Функции для выполнения операций над строками
Из библиотеки обработки строк
Функция strcpy копирует второй аргумент — строку — в первый аргумент — массив символов, который должен иметь достаточный размер, чтобы запомнить строку и ограничивающий символ NULL, который также копируется. Функция strncpy эквивалентна strcpy за исключением того, что strncpy задает число символов, которые необходимо скопировать из строки в массив. Функция strncpy не копирует ограничивающий символ NULL второго аргумента, если не выполнено следующее условие: число копируемых символов превышает длину строки, по меньшей мере, на единицу. Например, если вторым аргументом является строка "test", то ограничивающий символ NULL записывается, только если значение третьего аргумента функции составляет не менее 5 (4 символа в строке "test" плюс 1 символ NULL). Если значение третьего аргумента больше 5, то символы NULL добавляются в массив до тех пор, пока общее число записанных символов не станет равным числу, заданному в третьем аргументе.
Программа, приведенная на рис. 18, вызывает функцию strcpy для копирования всей строки из массива х в массив у и первых 14 символов из массива х в массив z. Символ NULL ('\0') добавляется в массив z в отдельном операторе, поскольку обращение программы к функции strcpy не копирует нулевой символ (третий аргумент меньше длины строки второго аргумента).
Функция strcat выполняет объединение строк (конкатенацию): второго аргумента — строки — с первым аргументом — массивом символов, содержащим строку. Первый символ второго аргумента заменяет последний символ NULL строки первого аргумента.
Функция strncat выполняет объединение определенного числа символов из второй строки с первой строкой. Ограничивающий символ NULL добавляется к строке результата автоматически. Программа, приведенная на рис. 19, демонстрирует применение функций strcat и strncat.
/* Применение strcpy и strncpy */
#include <stdio.h>
#include <string.h>
main () {
char x[] = "Happy Birthday to You";
char у [25], z[15];
printf ("%s%s\n%s%s\n",
"The string in array x is: ", x,
"The string in array у is: ", strcpy (y, x));
strncpy(z, x, 14);
z[14] = '\0';
printf ("The string in array z is: %s\n", z);
return 0; }
Вывод на экран
The string in array x: Happy Birthday to You
The string in array y: Happy Birthday to You
The string in array z: Happy Birthday
Рис. 18. Применение strcpy и strncpy
/* Применение strcat и strncat */
#include <stdio.h>
#include <string.h>
main ()
{
char s1[20]= "Happy
char s2[] ="New Year";
char s3[40] = "";
printf ("s1 = %s\ns2 = %s\n", s1, s2);
printf ("strcat (si, s2) = %s\n",
strcat(sl, s2));
printf("strncat(s3, s1 6) = %s\n", strncat(s3, si, 6));
printf. ("strcat (s3, si) = %s\n", strcat (s3, si));
return 0; }
Вывод на экран
s1 = Happy
s2 = New Year
strncat(si, s2) = Happy New Year
strncat(s3, si, 6) = Happy
strcat(s3, si) = Happy Happy New Year
Рис. 19. Применение strcat и strncat
Функции сравнения из библиотеки обработки строк
Прототипы функций и краткое описание каждой из них приведены на рис. 20.
| Прототип | Описание функции |
| int strcmp (const char *s1, const char *s2) | |
| Сравнивает строку s1 со строкой s2. Функция возвращает 0, значение меньше 0 или больше 0, если s1 соответственно равна, меньше или больше s2. | |
| int strncmp (const char * s1, const char *s2, size t n) | |
| Сравнивает до n символов строки s1 со строкой s2. функция возвращает 0, значение меньше 0 или больше 0, если s1 соответственно равна, меньше или больше чем s2. | |
Рис. 20. Функции сравнения строк из библиотеки обработки строк
Программа, показанная на рис. 21, сравнивает три строки, используя функции strcmp и strncmp. Функция strcmp сравнивает символ за символом первый аргумент-строку со вторым аргументом-строкой. Функция возвращает 0, если строки равны, отрицательное значение, если первая строка меньше второй, и положительное значение, если первая строка больше второй. Функция strncmp эквивалентна функции strcmp, за исключением того, что strncmp сравнивает до n символов в строках. Функция strncmp не сравнивает символы, идущие за символом NULL. Эта программа печатает целое значение, возвращаемое при каждом вызове функции.
/* Применение strcmp и strncmp.*/
#include <stdio.h>
#include <string.h>
main () {
char *sl = "Happy New Year";
char *s2 = "Happy New Year";
char *s3 = "Happy Holidays";
printf ("%s%s\n%s%s\n%s%s\n\n%s%2d\n%s%2d\n%s%2d\n\n", "s1 = ", s1, "s2 = ", s2, "s3 = ", s3, "strcmp(s1, s2) = ", strcmp(s1, s2), "strcmp(sl, s3) = ", strcmp (s1, s3), "strcmp (s3, s1) = ", strcmp(s3, s1));
printf("%s%2d\n%s%2d\n%s%2d\n",
"strncmp(sl, s3, 6) = ", strncmp(sl, s3, 6), "strncmp(si, s3, 7) = ", strncmp(si, s3, 7), "strncmp(s3, si, 7) = ", strncmp(s3, si, 7));
return 0; }
Вывод на экран
s1 = Happy New Year
s2 = Happy New Year
s3 = Happy Holidays
strcmp(si, s2) = 0
strcmp(si, s3) = 1
strcmp(s3, si) = -1
strncmp(si, s3, 6) = 0
strncmp(si, s3, 7) = 1
strncmp(s3, si, 7) = -1
Рис. 21. Применение strcmp и strncmp
Внутренние числовые коды, использующиеся для представления символов, могут отличаться на различных компьютерах.
|
|
|
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!