Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры печатать.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
379.36 Кб
Скачать
        1. Заполнение буфера при помощи memset()

Нередко нам приходится заполнять буфер определенным символом (или очищать его, заполняя нулями). В этих случаях имеет смысл воспользоваться функцией memset() как показано ниже.

//19MEMSET.C

//Пример использования функции memset

//заполнение буфера

#include <string.h>

#include <stdio.h>

char buf[20];

main()

{

buf[15]='\0';

printf("the contents af buf: %s",memset(buf,'+',15));

return (0);

}

В этом примере в строку записывается пятнадцать символов + и завершающий нулевой символ. Программа выдаст на экран пятнадцать знаков +.

42. Работа со строковыми функциями. Сравнение содержимого двух строк. Поиск в строке одного из нескольких символов. Первое вхождение одного символа в строке. Определение длины строки. Нахождение одной строки внутри другой. Приведение символов к верхнему регистру.

прототипы некоторых функций для манипуляции строками, содержащиеся в string.h:

irrt strcmp(const char *s1,const char *s2)

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

char *strcpy(char *s1,const char *s2)

Копирование строки

char *_strerror(char *s)

Пользовательское сообщение об ошибке

size_t strten(const char *s)

Вычисление длины строки

char *strncat(char *s1,const char *s2,size_t n)

Добавление n символов s2 в конец s1

int strncmp(const char *s1,const char *s2, size_t n)

Сравнение строк по первым n символам

        1. Сравнение содержимого двух строк

Следующая программа применяет функцию strcmp() и сообщает результат сравнения.

//19STRCMP.C

//Пример использования функции memset

//сравнение двух строк

#include <string.h>

#include <stdio.h>

char s1[45]="A group af characters makes a god string.";

char s2[45]="A group af characters makes a god string?";

int answer;

main()

{

answer=strcmp(s1,s2);

if(answer>0) printf("s1 is greater then s2");

else if(answer==0) printf("s1 is equal to s2");

else printf("s1 is less then s2");

printf("\n");

return (0);

}

        1. Поиск в строке одного из нескольких символов

В следующем примере мы ищем в строке первое вхождение одного из заданных символов:

#include <string.h>

#include <stdio.h>

char s1[5];

int answer;

main()

{ strcpy(s1,"We are looking for great strings.");

answer=strcspn(s1,"abc");

printf("The first a,b,c appeared at psitin %d\n",answer+1);

return (0);}

        1. Первое вхождение одного символа в строке

В следующем примере производится поиск первого пробела в строке.

#include <string.h>

#include <stdio.h>

char s1[20]="What is a friend?";

char *answer;

main()

{

answer=strchr(s1,' ');

printf("After the first blank: %s\n",answer);

return (0);

}

        1. Определение длины строки

Функция strlen() находит длину заданной строки. Вот простой пример:

#include <string.h>

#include <stdio.h>

char *s1="The string length is measured in characters!";

main()

{

printf("The string length is %d\n",strlen(s1));

return (0);

}

Здесь strlen() определяет общее количество символов в строке. В данном примере это количество равно 40.

        1. Нахождение одной строки внутри другой

Функция strstr() находит в строке группу (строку) символов, как показано в этом примере:

#include <string.h>

#include <stdio.h>

main()

{

char *s1="There is always something you miss.";

char *s2="way";

printf("%s\n",strstr(s1,s2));

return (0);

}

Здесь часть исходной строки, начиная с первого вхождения "way", передается функции printf(). На экран будет выдано "ways something you miss".