Основные функции стандартной библиотеки string.h 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Основные функции стандартной библиотеки string.h



Основные функции стандартной библиотеки string.h приведены в таблице.

Функция Описание
char *strcat(char *s1,char *s2) присоединяет s2 к s1, возвращает s1
char *strncat(char*s1, char *s2, int n) присоединяет не более n символов s2 к s1, завершает строку символом '\0', возвращает s1
char *strсpy(char *s1,char *s2) копирует строку s2 в строку s1, включая '\0', возвращает s1
char *strncpy(char*s1, char *s2, int n) копирует не более n символов строки s2 в строку s1, возвращает s1;
int strcmp(char *s1,char *s2) сравнивает s1 и s2, возвращает значение 0, если строки эквивалентны
int strncmp(char *s1,char *s2, int n) сравнивает не более n символов строк s1 и s2, возвращает значение 0, если начальные n символов строк эквивалентны
int strlen(char *s) возвращает количество символов в строке s
char *strset(char *s,char c) заполняет строку s символами, код которых равен значению c, возвращает указатель на строку s
char *strnset(char *s,char c, int n) заменяет первые n символов строки s символами, код которых равен c, возвращает указатель на строку s

 

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

 

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

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {

char m1[80] = "Первая строка";

char m2[80] = "Вторая строка";

char m3[80];

system("chcp 1251");

system("cls");

strncpy(m3, m1, 6); // не добавляет '\0' в конце строки

puts("Результат strncpy(m3, m1, 6)");

puts(m3);

strcpy(m3, m1);

puts("Результат strcpy(m3, m1)");

puts(m3);

puts("Результат strcmp(m3, m1) равен");

printf("%d", strcmp(m3, m1));

strncat(m3, m2, 5);

puts("Результат strncat(m3, m2, 5)");

puts(m3);

strcat(m3, m2);

puts("Результат strcat(m3, m2)");

puts(m3);

puts("Количество символов в строке m1 равно strlen(m1): ");

printf("%d\n", strlen(m1));

strnset(m3, 'f', 7);

puts("Результат strnset(m3, 'f', 7)");

puts(m3);

strset(m3, 'k');

puts("Результат strnset(m3, 'k')");

puts(m3);

getchar();

return 0;
}

 

Упражнения:

1. Удаление лишних пробелов в строке

2. Вывести символы до символа «;»

3. Определить сколько раз в строке появляется символ

4. Удалить символы, стоящие в скобках, предполагается, что пара скобок одна.

5. Посчитать количество слов, начинающихся на букву А

 

 


 

Процедуры и функции

 

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

Для этого обязательно нужно указать:

1. Тип результата функции;

2. Имя функции;

3. Информацию об аргументах функции;

4. Тело функции.

Синтаксис следующий:

ТипВозвращаемогоЗначения ИмяФункции(СписокФормальныхАргументов)

{

ТелоФункции;

...

return(ВозвращаемоеЗначение);

}

 

Для чего используют функции:

1. Если какой-то фрагмент кода встречается несколько раз, то его лучше поместить в функцию и вызывать из текста основной программы. Это упростит код.

2. Память под переменные, которые используются в функциях выделяется только в момент обращения к функции и высвобождается после завершения ее работы.

Вызов функции осуществляется из основного текста программы следующим способом:

переменная = ИмяФункции(СписокФактическихАргументов);

Как только в программе зафиксирован вызов функции, управление передается телу функции. В ходе выполнения тела функции, получаем некоторый результат, который необходимо вернуть в тело основной программы. Для этого предназначен оператор return. Оператор return говорит о том, что выполнение функции надо завершить. Оператор return может находится не только в конце функции. Тип функции и тип результата должны совпадать. Оператор return может отсутствовать совсем. Тогда функция называется процедурой и тип возвращаемого ей значения указывается void.

Пример Посчитать сумму двух чисел.

#include <stdio.h>

 

int sum(int x, int y) {

int k;

k = x + y;

return(k);}

 

int main() {

int a, r;

printf("a= ");

scanf("%d",&a);

r = sum(a, 5); // вызов функции: x=a, y=5

printf("%d + 5 = %d",a, r);

getchar();getchar();

return(0);
}

Пользовательские функции должны быть определены до главной функции main. Функцию можно разместить и после главной функции, но тогда необходимо до главной функции объявить прототип будущей пользовательской функции.

Пример

#include <stdio.h>
int sum(int, int);

int main() {

int a, r;

printf("a= ");

scanf("%d",&a);

r = sum(a, 5); // вызов функции: x=a, y=5

printf("%d + 5 = %d",a, r);

getchar();getchar();

return 0;
}

int sum(int x, int y) {

int k; // семантика

k = x + y;

return(k);}

 



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 430; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.219.236.62 (0.007 с.)