Слайд 2Объявление символьных данных
Char a; - объявление символа
Char a[n]; - объявление
символьной строки в виде массива
Слайд 3Как объявить символьный массив
void program(void)
{
char a1[9];//--- Объявление символьного массива из
9 элементов
printf("a1 = %s\n", a1);
char a2[9]={'P','r','o','t','v','i','n','o','\0'};//--- Инициализация символьного массива
//
'\0‘ – нуль-символ, ставится в конце символьной строки
printf("a2 = %s\n", a2);
char a3[9]={"Protvino"};//--- Можно и так инициализировать
printf("a3 = %s\n", a3);
char a4[9]="Protvino"; //--- И так можно инициализировать
printf("a4 = %s\n", a4);
char *a5="Protvino"; //--- Так можно задать и инициализировать, используя указатели
printf("a5 = %s\n", a5);
}
Слайд 4Функции символьных данных
Прототипы находятся
в файл-заголовке
“string.h”
Слайд 5strcpy(s1,s2);
Копировать строку s2 в s1
void P_strcpy(void)
{
char s1[10];
char *s2="abcdefghi";
strcpy(s1,s2); //---
Копировать строку s2 в s1
printf("%s\n", s1);
}
Слайд 6strncpy(s1, s2, n);
Копировать n символов строки s2 в s1
void
P_strncpy(void)
{
char s1[10];
char *s2="abcdefghi";
strncpy(s1, s2, 3); //--- Копировать n символов строки
s2 в s1
s1[3]='\0';
printf("%s\n", s1);
}
Слайд 7strcat(s1,s2);
Сцепить две строки
void P_strcat(void)
{
char s[25];
char *a = "Borland";
char *b
= " ";
char *c = "C++";
strcpy(s,a); //--- Копировать строку a
в s
strcat(s,b); //--- Добавить b в s
strcat(s,c); //--- Добавить c в s
printf("%s\n", s);
}
Слайд 8strncat(s1,s2);
Сцепить две строки, причем из второй копировать n строк
void P_strncat(void)
{
char s[25];
char *a = "University";
char *b = " ";
char
*c = "Dubna - City";
strcpy(s,a); //--- Копировать строку a в s
strcat(s,b); //--- Добавить b в s
strncat(s,c,5); //--- Добавить c в s
printf("%s\n", s);
}
Слайд 9strchr(s1, s2) ;
Возвращает указатель на первое вхождение заданного символа s2
в строку s1.
Если указанный символ не найден, возвращается нулевой указатель.
Слайд 10Пример программы
void P_strchr(void)
{
char s1[20]="This is a string";
char s2='s';
char *ptr;
ptr =
strchr(s1,s2);//возвращает указатель на первое вхождение заданного символа
if(ptr != NULL)
{
printf("The
first character %c is at the position: %p\n", s2,ptr);
printf("This character = %c\n", *ptr);
}
else
printf("The character %c is not found!\n", s2);
}
Слайд 11Внимание!
Находится не номер заданного символа в строке, а его адрес
в оперативной памяти.
Слайд 12strrchr(s1,s2);
Возвращает указатель на последнее вхождение заданного символа.
Если указанный символ
не найден, возвращается нулевой указатель.
Слайд 13Пример программы
void P_strrchr(void)
{
char s1[20]="This is a string";
char s2='s';
char *ptr;
ptr =
strrchr(s1,s2);//возвращает указатель на последнее вхождение заданного символа
if(ptr != NULL)
{
printf("The
last character %c is at the position: %p\n", s2, ptr);
printf("This character = %c\n", *ptr);
}
else
printf("The character %c is not found!\n", s2);
}
Слайд 14strcmp(s1,s2);
Сравнивает две строки в лексиграфическом порядке
и возвращает целое
значение, зависящее следующим образом от результата сравнения:
- s1>s2
==0 - s1=s2
Слайд 15Пример программы
void P_strcmp(void)
{
char *s1 = "aaa";
char *s2 = "bbb";
int res;
res
= strcmp(s1,s2);
printf("%d\n", res);
if (res>0) printf("s1 > s2\n");
if (res
< s2\n");
if (res==0) printf("s1 = s2\n");
}
Слайд 16strncmp(s1,s2,n);
Сравнивает n символов двух строк в лексиграфическом порядке
и возвращает целое
значение, зависящее следующим образом от результата сравнения:
s1>0 - s1>s2
==0 - s1=s2
Слайд 17strncmp(s1,s2,n);
Если в какой-нибудь из заданных строк меньше n символов,
сравнение заканчивается при обнаружении первого нулевого символа.
Слайд 18Пример программы
void P_strncmp(void)
{
char *s1 = "aaaxxx";
char *s2 = "bbbyyy";
int res;
res
= strncmp(s1,s2, 2);
printf("%d\n", res);
if (res>0) printf("s1 > s2\n");
if (res
printf("s1 < s2\n");
if (res==0) printf("s1 = s2\n");
}
Слайд 19strlen(s);
Возвращает длину символьной строки
void P_strlen(void)
{
char *s = "aaaxxx";
int l;
l =
strlen(s);
printf("%d\n", l);
}
Слайд 20Функции ввода и вывода символьных данных
Функция scanf() читает из буфера
клавиатуры символы до пробела
Функция printf() выводит символ или символьную строку
на экран
Функция getch()
Функция putch(ch)
Функция getchar()
Функция putchar(ch)
Функция getc()
Функция putc(ch)