Главная страница
Навигация по странице:

  • Например

  • Стандартные функции обработки строк

  • Файл – это информация, размещенная на каком-либо носителе (диске) или в буфере ввода/вывода устройства (клавиатура).

  • Основные функции работы с открытым файлом

  • Форматный вывод - Форматный вывод числовых результатов на стандартное устройство вывода (stdout), которым по умолчанию является экран дисплея, осуществляется с помощью функции printf.

  • ШПОРЫ ИНФА. Обработка строковых данных


    Скачать 55.83 Kb.
    НазваниеОбработка строковых данных
    Дата27.02.2022
    Размер55.83 Kb.
    Формат файлаdocx
    Имя файлаШПОРЫ ИНФА.docx
    ТипРешение
    #375949

    8) Обработка строковых данных

    К любому символу строки можно обратиться как к элементу одномерного массива, например, запись st[i] определяет i-ый символ в строке st. Поэтому при решении некоторых задач обработку строковых данных можно проводить посимвольно, организуя циклы для просмотра строки. Например: Дано предложение. Определить количество слов в нем. Решение: Слова в предложении разделяются пробелами. Подсчитав количество пробелов, можно определить количество слов, учитывая, что между словами введен только один пробел.

    #include "stdafx.h"

    #include int main() { char slova[120]; int i, n, k=1;

    printf("Введите предложение\n"); gets(slova);

    n= strlen(slova); // функция strlen() возвращает длину строки for(i=0;i
    if(slova[i]==' ')k++; //поиск и подсчет пробела

    printf("k=%d\n",k); return 0;

    }

    Стандартные функции обработки строк

    Большинство действий над строками реализуется с помощью стандартных функций, унаследованных от языка С и описанных в заголовочном файле string.h. Рассмотрим некоторые из них.

    Сравнение строк:

    strcmp(str1,str2) – сравнивает две строки str1 и str2 и возвращает 0, если они одинаковы; результат отрицателен, если str1str2.

    strncmp(str1, str2, kol) – сравниваются части строк str1 и str2 из kol символов. Результат равен 0, если они одинаковы.

    Сравнение двух строк выполняется последовательно слева направо с учетом кодировки символов. Например, сравнивая стоки st1 и st2

    char st1[10]="Пример"; char st2[10]="ПPимер"; int a; if (strcmp(st1,st2)>0) a=1; else a=2;

    переменной а будет присвоено значение 1, так как код символа 'р'

    больше кода символа 'Р'. Сцепление строк strcat(str1,str2) - сцепление строк в порядке их перечисления. strncat(str1,str2,kol) – приписывает kol символов строки str2 к строке str1. Функция служит для объединения двух строк в одну. Например, в результате выполнения операторов: char fam[] = "Андреев С.В."; char pr[17]= " -студент СИБГУТИ "; strcat(fam ,pr); printf("|%32s|", fam);

    на экран будет выведена строка:

    |Андреев С.В. -студент СИБГУТИ |

    Поиск символа в стоке strchr(st, ch) - функция поиска адреса символа ch в строке st. Результатом выполнения поиска является адрес найденного символа в строке st, иначе возвращается нулевой адрес. Чтобы вычислить порядковый номер символа ch в строке, можно из найденного адреса вычесть адрес начала строки.

    Пример.В заданной фамилии определить порядковый номер символа ‗n‘.

    #include "stdafx.h"

    #include int main()

    { char fam[] = "Ivanov";//задание фамилии char faml[20]; char a='n';// искомый символ

    char *p;

    p=strchr(fam,a);//поиск символа в фамилии if(p)

    printf("|%s|%d\n", fam, p-fam);/*вывод фамилии и

    порядкового номера символа n в ней */

    else

    printf("нет такого символа в фамилии!\n"); return 0;

    }

    Исходным текстом является предложение, заканчивающееся точкой. Слова в предложении отделяются друг от друга одним пробелом. Определить самое длинное слово в предложении.

    #include "stdafx.h"

    #include int main()

    { char slovo[12],X[120]; // описание массивов для предложений int i,m=0,n,k=0,dl;

    gets(X); // ввод исходного предложения в X dl= strlen(X);// определяем длину введенного предложения

    for(i=0; i
    { if (k>m) //поиск мах значения счетчика к

    { m=k; // запоминаем длину текущего длинного слова

    n=i; // запоминаем номер пробела, идущего за длинным словом

    }

    k=0; //обнуляем счетчик для нового слова предложения Х

    } k=0;

    for(i=n-m;i
    slovo[k++]=X[i];

    slovo[k]=0; //ставим в массиве slovo признак конца текста printf("%s\n",slovo); //вывод найденного длинного слова

    printf("%d\n",strlen(slovo));//вывод его длины return 0; }

    9) Файлы данных - это бинарные файлы,понятные компьютеру.Когда мы говорим о бинарных данных, тип char выступает в роли типа byte,В С++ нет типа byte, а вместо типа byte используют тип char. Согласно правилам языка С++, тип char оказывается наименьшей единицей информации. Из-за этого восприятие нами ситуации в целом немного искажается, ведь мы видим char*, а на самом деле это как byte*  Файл – это информация, размещенная на каком-либо носителе (диске) или в буфере ввода/вывода устройства (клавиатура). Файлы предназначены только для хранения информации, а обработка этой информации осуществляется программами.Открытие файла - fl=fopen("путь к файлу","режим работы файла"); Параметр "путь к файлу" указывает размещение файла на диске. Он обязательно содержит имя файла и может содержать имя логического диска и путь к нему по папкам. Параметр "режим работы файла"показывает, как будет использоваться файл: "w" – для записи данных (вывод); "r" – для чтения данных (ввод); "a" – для добавления данных к существующим записям. Закрытие файла - После завершения обработки файла его следует закрыть с помощью функции fclose(). При этом разрывается связь указателя на файл c внешним набором данных. Освободившийся указатель можно использовать для другого файла.

    Основные функции работы с открытым файлом -

    (ввод) fgetc() (вывод) fputc(), fscanf() - fprintf(),fgets()-fputs(), fread() - fwrite()

    10) Вывод на консоль - Для вывода на консоль применяется оператор <<. Этот оператор получает два операнда. Левый операнд представляет объект типа ostream, в данном случае объект cout. А правый операнд - значение, которое надо вывести на консоль. Также цепочку операторов << можно завершать значением std::endl, которое вызывает перевод на новую строку и сброс буфера. При выводе в поток данные вначале помещаются в буфер. И сброс буфера гарантирует, что все переданные для вывода на консоль данные немедлено будут выведены на консоль.

    Ввод с консоли - Для считывания с консоли данных применяется оператор ввода >>, который принимает два операнда. Левый операнд представляет объект типа istream (в данном случае объект cin), с которого производится считывание, а правый операнд - объект, в который считываются данные.


    Форматный вывод - Форматный вывод числовых результатов на стандартное устройство вывода (stdout), которым по умолчанию является экран дисплея, осуществляется с помощью функции printf.

    11)





    написать администратору сайта