Скачать презентацию Строки в языке Си Определение строки Строка Скачать презентацию Строки в языке Си Определение строки Строка

9(Строки в С).ppt

  • Количество слайдов: 18

Строки в языке Си. Строки в языке Си.

Определение строки Строка – массив символов, заканчивающийся нулевым байтом ‘�’. char mas[10]; //10 символов Определение строки Строка – массив символов, заканчивающийся нулевым байтом ‘’. char mas[10]; //10 символов могут храниться в массиве, но //только 9 символов могут поместиться в строке

Форматированный вывод Вывод строки с помощью printf: % - длина. точность s длина – Форматированный вывод Вывод строки с помощью printf: % - длина. точность s длина – минимальный размер поля вывода (при необходимости недостающие позиции заполняются пробелами) точность – число символов строки, помещаемых в поле char line[10]=“поле”; char m[15]=“строка ввода”; printf(“%s”, line) //поле printf(“%10 s”, line) // поле printf(“%10. 3 s”, line) // пол printf(“%s”, m); //строка ввода

Форматированный ввод Ввод строки с помощью scanf: % длина s длина – максимальная длина Форматированный ввод Ввод строки с помощью scanf: % длина s длина – максимальная длина строки char line[10]; //вводим слово «компьютер» scanf(“%s”, line) //компьютер scanf(“%5 s”, line) //компь //вводим фразу «мой компьютер» scanf(“%s”, line) //мой

Построчный вывод Вывод с помощью puts: puts(char_pointer) Функция выводит данные из массива символов с Построчный вывод Вывод с помощью puts: puts(char_pointer) Функция выводит данные из массива символов с адресом char_pointer до тех пор, пока не будет обнаружен завершающий строку нулевой байт, и добавляет символ новой строки ‘n’. char line[10]; //выводим строку «мой компьютер» puts(line); //мой компьютерn

Построчный ввод Ввод с помощью gets: gets(char_pointer, size) size – число символов строки вместе Построчный ввод Ввод с помощью gets: gets(char_pointer, size) size – число символов строки вместе с нулевым байтом Функция считывает данные в массив символов char_pointer, а потом добавляют к концу строки нулевой байт. Символы считываются до тех пор, пока не будет обнаружен конец строки, конец файла или по ограничению size. В строку будет помещено size-1 символов. А остальные символы будут считаны при следующем вызове gets.

Строковые функции Слияние(конкатенация) строк (1) Подключается файл string. h К концу строки-приемника добавляется строка-источник Строковые функции Слияние(конкатенация) строк (1) Подключается файл string. h К концу строки-приемника добавляется строка-источник полностью. Функция strcat char *tp; //указатель на строку-приемник char *sp; //указатель на строку-источник char *np; //указатель на первый символ строки-приемника np= strcat(tp, sp);

Строковые функции Слияние(конкатенация) строк (2) К концу строки-приемника добавляется определенное количество первых символов строки-источника. Строковые функции Слияние(конкатенация) строк (2) К концу строки-приемника добавляется определенное количество первых символов строки-источника. Функция strncat int len; //добавляется не более len байт np= strncat(tp, sp, len); Гарантируется, что строка-приемник будет завершаться нулевым байтом.

Строковые функции Копирование строк (1) В строку-приемник помещается копия строки-источника. Функция strcpy char *tp; Строковые функции Копирование строк (1) В строку-приемник помещается копия строки-источника. Функция strcpy char *tp; //указатель на строку-приемник char *sp; //указатель на строку-источник char *np или int np; //указатель на конец строки приемника или число скопированных символов np= strcpy(tp, sp);

Строковые функции Копирование строк (2) В строку-приемник копируется только первые len символов строки-источника Функция Строковые функции Копирование строк (2) В строку-приемник копируется только первые len символов строки-источника Функция strncpy char *tp; //указатель на строку-приемник char *sp; //указатель на строку-источник int len; //максимальная длина строки-приемника char *np или int np; //указатель на конец строки приемника или число копированных символов np= strncpy(tp, sp, len);

Строковые функции Копирование строк (3) В случае strcpy копирование продолжается до тех пор, пока Строковые функции Копирование строк (3) В случае strcpy копирование продолжается до тех пор, пока нулевой байт строки-источника не будет скопирован в строку-приемник. В случае strncpy в строку-приемник копируется не более len символов, то есть копирование завершается после того, как либо будет переписано len символов, либо в строке источнике будет обнаружен нулевой байт.

Строковые функции Сравнение строк (1) “ 1” < “ 2” /* ’ 1’=48, ‘ Строковые функции Сравнение строк (1) “ 1” < “ 2” /* ’ 1’=48, ‘ 2’=50 */ “ 9” < “A” /* ‘ 9’=57, ‘A’=65 */ “a” > “A” /* ‘a’=97, ‘A’=65 */ “AB” > “AA” /* ‘B’=66, ‘A’=65 */ “A” < “AB” /* строка “AB” длиннее “A” */

Строковые функции Сравнение строк (2) Сравниваются две строки с учетом ASCII-кодов символов, их составляющих, Строковые функции Сравнение строк (2) Сравниваются две строки с учетом ASCII-кодов символов, их составляющих, и длины самих строк Функция strcmp char *s 1; //указатель на первую строку char *s 2; //указатель на вторую строку int result ; //результат сравнения: result= strcmp(s 1, s 2); 0 – равенство, положителен – s 1>s 2, отрицателен – s 1

Строковые функции Сравнение строк (3) Сравниваются только несколько первых символов двух строк Функция strncmp Строковые функции Сравнение строк (3) Сравниваются только несколько первых символов двух строк Функция strncmp int len; //ограничитель числа сравниваемых пар символов result= strncmp(s 1, s 2, len);

Строковые функции Поиск образца в строке (1) Поиск места первого вхождения символа в строку Строковые функции Поиск образца в строке (1) Поиск места первого вхождения символа в строку (поиск слева направо). Функция strchr char *sp; //строка, в которой надо искать символ char c; //искомый символ char *np; //указатель на первое вхождение символа в строку. Если символ не найден, то возвращается NULL. np= strchr(sp, c);

Строковые функции Поиск образца в строке (2) Поиск места последнего вхождения символа в строку Строковые функции Поиск образца в строке (2) Поиск места последнего вхождения символа в строку (поиск справа налево). Функция strrchr np= strrchr(sp, c);

Строковые функции Поиск подстроки в строке Поиск места первого вхождения подстроки в строку. Функция Строковые функции Поиск подстроки в строке Поиск места первого вхождения подстроки в строку. Функция strstr char *sp; //строка, в которой надо искать char *pp; //искомая подстрока char *np; //указатель на первое вхождение подстроки в строке. np= strstr(sp, pp);

Строковые функции Определение длины строки Для нахождения длины строки используется функция strlen. char *s; Строковые функции Определение длины строки Для нахождения длины строки используется функция strlen. char *s; int k; k=strlen(s);