Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в программирование на С.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
930.82 Кб
Скачать

Int srav(char *,char *);

Void main()

{

char x[100],y[100];

int l;

puts("Введите строку: ");

gets(x);

puts("Введите строку: ");

gets(y);

l=srav(x,y);

if(l==0)

printf("строки одинаковы==\n");

else

printf("строки не одинаковы!=%d\n",l);

}

Int srav(char *X,char *y)

{

for(int i=0;x[i] || y[i];i++)

{

if(x[i]>y[i])

return 1;

if(x[i]<y[i])

return -1;

}

return 0;}

5.2 Функции работы со строками из библиотеки <string.h>

char*strcpy(char*s1,const char*s2); копирует строку s2 в строку s1, причем массив строк s1 должен быть достаточно большим, чтобы хранить строку s2 и символ конец строки содержащий в копирующей строке. Возвращает значение строки s1.

char*strcnpy(char*s1,const char*s2, size_t n); копирует не более n символов строки s2 в строку s1, причем массив строк s1 должен быть достаточно большим, чтобы хранить строку s2 и символ конец строки содержащий в копирующей строке. Возвращает значение строки s1.

char*strcat(char*s1,const char*s2); добавляет строку s2 строке s1, причем массив строк s1 должен быть достаточно большим, чтобы хранить строки s1 и s2, а так же символ конец строки. Возвращает значение строки s1.

char*strncat(char*s1,const char*s2, size_t n); добавляет не более n символов строки s2 в строке s1, причем массив строк s1 должен быть достаточно большим, чтобы хранить строки s1 и s2, а так же символ конец строки. Возвращает значение строки s1.

int strcmp(const char*s1,const char*s2); сравнивает посимвольно строки s1 и s2, возвращает 0, если строки одинаковы, 1 если встречается хотя бы один символ в строке s1, код которого больше, чем код символа строки s2 и -1, если встречается хотя бы один символ в строке s1, код которого меньше, чем код символа строки s2.

int strcnmp(const char*s1,const char*s2,size_t n); сравнивает не более n символов строки s1 и s2, возвращает 0, если строки одинаковы, 1 если встречается хотя бы один символ в строке s1, код которого больше, чем код символа строки s2 и -1, если встречается хотя бы один символ в строке s1, код которого меньше, чем код символа строки s2.

size_t strlen(const char*s); определяет длину строки s и возвращает количество символов, предшествующих символу конец строки. sise_t – это целый без знака тип, который определен в <stddef.h>

char*strtok(char*s1,const char*s2); функция разбивает строку s1 на лексему (последовательность символов, отделенной символом разделителем, разделителем обычно служат пробелы или знаки пунктуации и задается как строка s2). Если последовательно вызывать strtok, можно разбить строку s1 на логические куски, разделенные символом, содержащим в строке s2. Первый вызов содержит в качестве первого аргумента строку s1, а последующие вызовы для обработки той же строки, содержит в качестве первого аргумента NULL. При каждом вызове возвращает указатель на текущую лексему.

#include<stdio.h>

#include<string.h>

Void main()

{

char x[]="afs,gaf, agshdfah, ash%%gdha, as%gda%";

char *ptr;

printf("разбитие строки на лексемы:\n");

ptr=strtok(x,",");

while(ptr!=NULL)

{

printf("%s\n",ptr);

ptr=strtok(NULL,",");

}

}

В результате работы данной программы получим:

разбитие строки на лексемы:

afs

gaf

agshdfah

ash%%gdha

as%gda%

Задачи:

  1. Имеем 4 строки, например char x[20], y[20], z[20], t[80]; В первую строку вводим фамилию, во-вторую имя, а в третью отчество и используя функции из библиотеке <string.h> записываем в строку z сначала фамилию потом пробел, имя пробел и отчество пробел. Распечатываем только строку z.

  2. Введите строку. Если длина строки а) больше 10, то удалить два последних символа; б) меньше 10, то удалить два первых символа; в) равно 10, то удалить символ по середине.

  3. Ввести число и распечатать, те цифры данного числа, которые делятся на 2.

  4. Ввести число и посчитать произведение цифр данного числа.

  5. Ввести число и распечатать цифры данного числа через два пробела. Например, если ввели 123456, то печатает 1 2 3 4 5 6.

  6. Ввести строку, которая содержит целые числа и преобразовать ее в число.

#include<stdio.h>