Разделы презентаций


Основы программирования ФИСТ 1 курс Власенко Олег Федосович

Содержание

Тип charchar – это «очень короткий» целый тип#include void main() { char ch = 32; while (ch < 127) { printf("%d ", ch); ch++; }}

Слайды и текст этой презентации

Слайд 1Основы программирования ФИСТ 1 курс Власенко Олег Федосович
Лекция 8
Символы и строки в

Си.
Стандартная библиотека: ctype.h и string.h.
Собственная реализация стандартных функций.

Основы программирования ФИСТ 1 курс Власенко  Олег  ФедосовичЛекция 8Символы и строки в Си.Стандартная библиотека: ctype.h

Слайд 2Тип char
char – это «очень короткий» целый тип
#include

void main()

{

char ch = 32;
while (ch < 127) {
printf("%d ", ch);
ch++;
}
}

Тип charchar – это «очень короткий» целый тип#include void main() {	char ch = 32;	while (ch < 127)

Слайд 3Тип char (2)
char – это символьный тип
#include

void main() {

char

ch = 32;
while (ch < 127) {
printf("%c ", ch);
ch++;
}
}

Тип char (2)char – это символьный тип#include void main() {	char ch = 32;	while (ch < 127) {		printf(

Слайд 4Тип char (3)
unsigned char = [0 .. 255]
#include

void main()

{

unsigned char ch = 0;

while (ch < 255) {
printf("%c ",

ch);
ch++;
}
}
Тип char (3)unsigned char = [0 .. 255]#include void main() {	unsigned char ch = 0;	while (ch <

Слайд 5Тип char (4)
signed char = [-128 .. +127]
#include

void main()

{

signed char ch = -128;

while (ch < 127) {
printf("%c ",

ch);
ch++;
}
}
Тип char (4)signed char = [-128 .. +127]#include void main() {	signed char ch = -128;	while (ch <

Слайд 6Тип char (5)
Загадка:

Тип char == signed char

ИЛИ

Тип char ==

unsigned char

?

Тип char (5)Загадка:Тип char == signed char ИЛИТип char == unsigned char ?

Слайд 7Тип char (6)
http://stackoverflow.com/questions/2054939/is-char-signed-or-unsigned-by-default

The standard does not specify if plain char

is signed or unsigned…






Тип char (6)http://stackoverflow.com/questions/2054939/is-char-signed-or-unsigned-by-defaultThe standard does not specify if plain char is signed or unsigned…

Слайд 8ASCII
https://ru.wikipedia.org/wiki/ASCII

ASCII (англ. American standard code for information interchange) — название таблицы (кодировки,

набора), в которой некоторым распространённым печатным и непечатным символам сопоставлены

числовые коды. Таблица была разработана и стандартизована в США в 1963 году.


ASCIIhttps://ru.wikipedia.org/wiki/ASCIIASCII (англ. American standard code for information interchange) — название таблицы (кодировки, набора), в которой некоторым распространённым печатным и

Слайд 9ASCIIZ
http://stackoverflow.com/questions/7783044/whats-the-difference-between-asciiz-vs-ascii


In computing, a C string is a character sequence

terminated with a null character ('\0', called NUL in ASCII).

It is usually stored as one-dimensional character array.[dubious – discuss] The name refers to the C programming language which uses this string representation. Alternative names are ASCIIZ (note that C strings do not imply the use of ASCII) and null-terminated string

ASCIIZhttp://stackoverflow.com/questions/7783044/whats-the-difference-between-asciiz-vs-ascii In computing, a C string is a character sequence terminated with a null character ('\0', called

Слайд 10null-terminated string
void main() {
char s1[8] = "Hi!\n";

int i;
for (i

= 0; i < 8; i++) {
printf("%c(%d), ", s1[i], s1[i]);
}
}


Слайд 11Инициализация строки как массива символов
void main() {
char s1[8] = {

'H', 'i', '!', '\n', '\0' };

int i;
for (i = 0;

i < 8; i++) {
printf("%c(%d), ", s1[i], s1[i]);
}
}
Инициализация строки как массива символовvoid main() {	char s1[8] = { 'H', 'i', '!', '\n', '\0' };	int i;	for

Слайд 12Инициализация строки как строки
void main() {
char s2[] = "%c(%d), ";

int

i;
for (i = 0; i < 12; i++) {
printf("%c(%d), ",

s2[i], s2[i]);
}
}
Инициализация строки как строкиvoid main() {	char s2[] =

Слайд 13Простейшие алгоритмы обработки строк (как массива символов с ‘\0’ в

конце)
Все цифры заменить на символ «#»
#include
void main() {
char s3[]

= "I have 32 USD and 5 EUR!";
printf("s3 = %s\n", s3);
int i = 0;
while (s3[i] != '\0') {
if (s3[i] >= '0' && s3[i] <= '9') {
s3[i] = '#';
}
i++;
}
printf("s3 = %s\n", s3);
}

Слайд 14Используем функции из ctype.h
Все цифры заменить на символ «#»
#include
#include


void main() {
char s3[] = "I have 32 USD and

5 EUR!";
printf("s3 = %s\n", s3);
int i = 0;
while (s3[i] != '\0') {
if (isdigit(s3[i])) {
s3[i] = '#';
}
i++;
}
printf("s3 = %s\n", s3);
}
Используем функции из ctype.hВсе цифры заменить на символ «#»#include #include void main() {	char s3[] =

Слайд 15Используем функции из ctype.h
Все ????? заменить на символ «#»


void main()

{
char s3[] = "I have 32 USD and 5 EUR!";
printf("s3

= %s\n", s3);
int i = 0;
while (s3[i] != '\0') {
if (isalpha(s3[i])) {
s3[i] = '#';
}
i++;
}
printf("s3 = %s\n", s3);
}
Используем функции из ctype.hВсе ????? заменить на символ «#»void main() {	char s3[] =

Слайд 16Используем функции из ctype.h
Все ????? заменить на символ «#»


void main()

{
char s3[] = "I have 32 USD and 5 EUR!";
printf("s3

= %s\n", s3);
int i = 0;
while (s3[i] != '\0') {
if (isspace(s3[i])) {
s3[i] = '#';
}
i++;
}
printf("s3 = %s\n", s3);
}
Используем функции из ctype.hВсе ????? заменить на символ «#»void main() {	char s3[] =

Слайд 17Используем функции из ctype.h
Все ????? заменить на символ «#»


void main()

{
char s3[] = "I have 32 USD and 5 EUR!";
printf("s3

= %s\n", s3);
int i = 0;
while (s3[i] != '\0') {
if (isupper(s3[i])) {
s3[i] = '#';
}
i++;
}
printf("s3 = %s\n", s3);
}
Используем функции из ctype.hВсе ????? заменить на символ «#»void main() {	char s3[] =

Слайд 18Используем функции из ctype.h
Все ????? заменить на символ «#»


void main()

{
char s3[] = "I have 32 USD and 5 EUR!";
printf("s3

= %s\n", s3);
int i = 0;
while (s3[i] != '\0') {
if (islower(s3[i])) {
s3[i] = '#';
}
i++;
}
printf("s3 = %s\n", s3);
}
Используем функции из ctype.hВсе ????? заменить на символ «#»void main() {	char s3[] =

Слайд 19Используем функции из ctype.h
Все ????? заменить на ??????

void main() {
char

s3[] = "I have 32 USD and 5 EUR!";

printf("s3 =

%s\n", s3);
int i = 0;

while (s3[i] != '\0') {
s3[i] = toupper(s3[i]);
i++;
}

printf("s3 = %s\n", s3);
}
Используем функции из ctype.hВсе ????? заменить на ??????void main() {	char s3[] =

Слайд 20Используем функции из ctype.h
Все ????? заменить на ??????

void main() {
char

s3[] = "I have 32 USD and 5 EUR!";

printf("s3 =

%s\n", s3);
int i = 0;

while (s3[i] != '\0') {
s3[i] = tolower(s3[i]);
i++;
}

printf("s3 = %s\n", s3);
}
Используем функции из ctype.hВсе ????? заменить на ??????void main() {	char s3[] =

Слайд 21Стандартные функции обработки строк
strlen(s) - Возвращает длину строки без завершающей

литеры '\0'.

strcmp(s1, s2) – посимвольное сравнение строк (НЕЛЬЗЯ сравнивать строки

так «s1 == s2» или
«s1 < s2»!!!)

strcpy (dest, src) – копирует сроку src в dest, включая завершающий ‘\0’

strcat (dest, src) – добавляет копию src в конец dest

И еще около 20 функций из string.h
Стандартные функции обработки строкstrlen(s) - Возвращает длину строки без завершающей литеры '\0'.strcmp(s1, s2) – посимвольное сравнение строк

Слайд 22strlen()
#include
void main() {
char s[10] = "Hi!";
printf("len = %d\n", strlen(s));

s[3]

= ' '; s[4] = '\0';
printf("len = %d\n", strlen(s));

s[4] =

'W'; s[5] = 'o'; s[6] = 'r'; s[7] = 'l';
s[8] = 'd'; s[9] = '\0';
printf("len = %d\n", strlen(s));
}

Слайд 23strlen()
#include
void main() {
char s[10] = "Hi!";
printf("len = %d\n", strlen(s));

s[3]

= ' '; s[4] = '\0';
printf("len = %d\n", strlen(s));

s[4] =

'W'; s[5] = 'o'; s[6] = 'r'; s[7] = 'l';
s[8] = 'd'; s[9] = '\0';
printf("len = %d\n", strlen(s));
}

Слайд 24Сравнение строк – НЕ ДЕЛАЙТЕ ТАК НИКОГДА!!!
void main() {
char s1[]

= "Button";
char s2[] = "We";
char s3[] = "Apple !!";
char *

min = s1; char * max = s1;

if (s2 > max) max = s2;
if (s3 > max) max = s3;
printf("max = %s\n", max);

if (s2 < min) min = s2;
if (s3 < min) min = s3;
printf("min = %s\n", min);
}
max) max = s2; if (s3 > max) max = s3; printf("max = %s\n", max); if (s2 < min) min = s2; if (s3 < min) min = s3; printf("min = %s\n", min);}">Сравнение строк – НЕ ДЕЛАЙТЕ ТАК НИКОГДА!!!void main() {	char s1[] =

Слайд 25Сравнение строк через strcmp
int strcmp(const char *str1, const char *str2);
int

strcmp(char str1[], char str2[]);

Функция strcmp() сравнивает в лексикографическом порядке две

строки и возвращает целое значение, зависящее следующим образом от результата сравнения.

Значение Результат сравнения строк
Меньше нуля str1 меньше str2
Нуль str1 равен str2
Больше нуля str1 больше str2
Сравнение строк через strcmpint strcmp(const char *str1, const char *str2);int strcmp(char str1[], char str2[]);Функция strcmp() сравнивает в

Слайд 26Сравнение строк через strcmp
void main() {
char s1[] = "Button";
char s2[]

= "We";
char s3[] = "Apple !!";
char * min = s1; char

* max = s1;

if (strcmp(s2, max) > 0) max = s2;
if (strcmp(s2, max) > 0) max = s3;
printf("max = %s\n", max);

if (strcmp(s2, min) < 0) min = s2;
if (strcmp(s3, min) < 0) min = s3;
printf("min = %s\n", min);
}

Слайд 27Копирование строк
void main() {
char src[] = "Button";
char dest[10];

printf("src = %s,

dest = %s\n", src, dest);

strcpy(dest, src);
printf("src = %s, dest =

%s\n", src, dest);

}
Копирование строкvoid main() {	char src[] =

Слайд 28Конкатенация строк
void main() {
char src[] = "Button";
char dest[10] = "";
printf("src

= %s, dest = %s\n", src, dest);

strcat(dest, src);
printf("src = %s,

dest = %s\n", src, dest);

strcat(dest, "!");
printf("src = %s, dest = %s\n", src, dest);
}

Слайд 29Еще раз - int strlen(char s[])
int strlen(char s[]) {
int len;

return

len;
}

Возвращает длину строки без завершающей литеры '\0'.

Пример:
strlen(“!!”) == 2
strlen(“Hi!\n”) ==4


Еще раз - int strlen(char s[])int strlen(char s[]) {	int len;	…	return len;}Возвращает длину строки без завершающей литеры '\0'.Пример:strlen(“!!”)

Слайд 30Собственная реализация strlen
int strlen_my(char s[]) {
int len;

return len;
}

Нужно написать код

функции strlen_my(s), работающей аналогично strlen(s)

Пример использования:
strlen_my(“!!”) == 2
strlen_my(“Hi!\n”) ==4

Собственная реализация strlenint strlen_my(char s[]) {	int len;	…	return len;}Нужно написать код функции strlen_my(s), работающей аналогично strlen(s)Пример использования:strlen_my(“!!”) ==

Слайд 31Собственная реализация strlen
int strlen_my(char s[])
{
int len = 0;

while (s[len] !=

'\0‘)
len++;

return len;
}

Собственная реализация strlenint strlen_my(char s[]){	int len = 0;	while (s[len] != '\0‘)		len++;	return len;}

Слайд 32[Домашнее] задание
Написать собственную версию strcpy_my(dest, src)
Написать собственную версию

strcat(dest, src)

[Домашнее] заданиеНаписать собственную версию strcpy_my(dest, src) Написать собственную версию  strcat(dest, src)

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика