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


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

Содержание

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

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

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

Си.
Работа с текстовыми файлами

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

Слайд 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;}

Слайд 32int strcmp(char s1[], char s2[])
int strcmp(const char *str1, const char

*str2);

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

целое значение, зависящее следующим образом от результата сравнения.
Значение Результат сравнения строк
Меньше нуля str1 меньше str2
Нуль str1 равен str2
Больше нуля str1 больше str2

Пример использования:
strcmp(“Abba”, “Beta”) < 0
int strcmp(char s1[], char s2[])int strcmp(const char *str1, const char *str2);Функция strcmp() сравнивает в лексикографическом порядке две

Слайд 33Собственная реализация strcmp
/*
s1 < s2 :

: 0
s1 > s2 : >0
*/
int strcmp_my(char s1[], char

s2[])
{
return …;
}
Нужно написать код функции strcmp_my(s1, s2), работающей аналогично strcmp(s1, s2)
Пример использования:
strcmp_my(“Abba”, “Beta”) < 0
Собственная реализация strcmp/*s1 < s2  : s2  : >0*/int strcmp_my(char s1[], char s2[]){	return …;}Нужно написать

Слайд 34Собственная реализация strcmp
/*
s1 < s2 :

: 0
s1 > s2 : >0
*/
int strcmp_my(char s1[], char

s2[])
{
int i = 0;
while (s1[i] != 0 && s2[i] != 0 && s1[i] == s2[i])
i++;

return s1[i] - s2[i];
}
Собственная реализация strcmp/*s1 < s2  : s2  : >0*/int strcmp_my(char s1[], char s2[]){	int i =

Слайд 35Трассировка strcmp
/*
s1 < s2 :

0
s1 > s2 : >0
*/
int strcmp_my(char s1[], char s2[])
{
int

i = 0;
while (s1[i] != 0 && s2[i] != 0 && s1[i] == s2[i])
i++;

return s1[i] - s2[i];
}
Трассировка strcmp/*s1 < s2  : s2  : >0*/int strcmp_my(char s1[], char s2[]){	int i = 0;	while

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

strcat(dest, src)

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

Слайд 37Текстовый файл
Текстовый файл содержит последовательность символов (в основном печатных знаков,

принадлежащих тому или иному набору символов). Эти символы обычно сгруппированы

в строки (англ. lines, rows). В современных системах строки разделяются разделителями строк

https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D1%84%D0%B0%D0%B9%D0%BB


Текстовый файлТекстовый файл содержит последовательность символов (в основном печатных знаков, принадлежащих тому или иному набору символов). Эти

Слайд 38Перевод строки
Перевод строки, или разрыв строки — продолжение печати текста с

новой строки, то есть с левого края на строку ниже,

или уже на следующей странице.
Разделителем строк, обозначающим место перевода строки, в текстовых данных служит один или пара управляющих символов, а в размеченном тексте также — определённый тег (в HTML — тег 
, от англ. break — «разрыв»).



Перевод строкиПеревод строки, или разрыв строки — продолжение печати текста с новой строки, то есть с левого края

Слайд 39Перевод строки – в разных ОС
(“\n”) LF (ASCII 0x0A) используется в

Multics, UNIX, UNIX-подобных операционных системах (GNU/Linux, AIX, Xenix, Mac OS

X, FreeBSD и др.), BeOS, Amiga UNIX, RISC OS и других;
(“\r”) CR (ASCII 0x0D) используется в 8-битовых машинах Commodore, машинах TRS-80, Apple II, системах Mac OS до версии 9 и OS-9;
(“\r\n”) CR+LF (ASCII 0x0D 0x0A) используется в DEC RT-11 и большинстве других ранних не-UNIX- и не-IBM-систем, а также в CP/M, MP/M (англ.), MS-DOS, OS/2, Microsoft Windows, Symbian OS, протоколах Интернет.



Перевод строки – в разных ОС(“\n”) LF (ASCII 0x0A) используется в Multics, UNIX, UNIX-подобных операционных системах (GNU/Linux, AIX,

Слайд 40Чтение из текстового файла - feof
Проверяет поток на достижение конца

файла.

int feof( FILE *stream );

Параметры
stream Указатель на

структуру FILE.

Возвращаемое значение
Функция feof возвращает ненулевое значение, если операция чтения попыталась читать данные после конца файла; в противном случае она возвращает 0.

https://msdn.microsoft.com/ru-ru/library/xssktc6e.aspx
Чтение из текстового файла - feofПроверяет поток на достижение конца файла. int feof( FILE *stream ); Параметры

Слайд 41Чтение из текстового файла - fgets
Считывание строки из потока.
char *fgets(


char *str,
int n,
FILE *stream


);

Параметры
Str - Место хранения данных.
n - Наибольшее число символов для чтения.
Stream - Указатель на структуру FILE.

Возвращаемое значение
возвращает str. Для указания ошибки или условия конца файла функция возвращает NULL.
https://msdn.microsoft.com/ru-ru/library/c37dh6kf.aspx
Чтение из текстового файла - fgetsСчитывание строки из потока.char *fgets(  char *str,  int n,

Слайд 42Чтение из текстового файла построчно
char filename[] = "d:\\temp\\text_in.txt";
FILE * fin;
char

s[MAX_LEN];
fin = fopen(filename, "rt");
// в цикле для всех строк
while (!feof(fin))

{
// загрузить строку
if (fgets(s, MAX_LEN - 1, fin) != NULL) {
if (s[strlen(s) - 1] == '\n')
s[strlen(s) - 1] = '\0';
convert(s);
printf("%s\n", s);
}
}
fclose(fin);
Чтение из текстового файла построчноchar filename[] =

Слайд 43Задача шифрования текста
На входе текстовый файл in.txt (содержащий слова, разделители

и знаки препинания).

Необходимо сохранив все разделители и знаки препинания на

своих местах, зашифровать текст используя шифр Цезаря.

https://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%84%D1%80_%D0%A6%D0%B5%D0%B7%D0%B0%D1%80%D1%8F
http://altaev-aa.narod.ru/security/Cesar.html
ROT13 - https://ru.wikipedia.org/wiki/ROT13
Задача шифрования текстаНа входе текстовый файл in.txt (содержащий слова, разделители и знаки препинания).Необходимо сохранив все разделители и

Слайд 44Шифрование одной строки
#define MAX_LEN 80

#define KEY +3
#define KEY2 -3




void convert(char

* str) {
int i;
for (i = 0; str[i] != '\0';

i++) {
str[i] = encode(str[i], KEY);
}
}
Шифрование одной строки#define MAX_LEN 80#define KEY +3#define KEY2 -3void convert(char * str) {	int i;	for (i = 0;

Слайд 45Шифрование одного символа
int encode(int ch, int key) {
//char smallLetters[] ="abcdefghijklmnopqrstuvwxyz";
//char

bigLetters[] ="ABCDEGGHIJKLMNOPQRSTUVWXYZ";

int newCh = ch;

if (ch >= 'A' && ch

<= 'Z') {
newCh = ch + key;
if (newCh > 'Z')
newCh = 'A' + (newCh - 'Z');
}

if (ch >= 'a' && ch <= 'z') {
newCh = ch + key;
if (newCh > 'z')
newCh = ‘a' + (newCh - 'z');
}

return newCh;
}

Слайд 46Многомодульные проекты

Многомодульные проекты

Слайд 47Структура многомодульного проекта

Структура многомодульного проекта

Слайд 49Main.c
#define _CRT_SECURE_NO_WARNINGS

#include
#include
#include "Caesar.h"

#define MAX_LEN 80

void main() {

fin =

fopen(filenameOut, "rt");
fout = fopen(filenameOut2, "wt");
// в цикле для всех строк
while

(!feof(fin))
{
// загрузить строку
if (fgets(s, MAX_LEN - 1, fin) != NULL) {
if (s[strlen(s) - 1] == '\n')
s[strlen(s) - 1] = '\0';
convert(s);
printf("%s\n", s);
}
}
Main.c#define _CRT_SECURE_NO_WARNINGS#include #include #include

Слайд 50Caesar.h

Caesar.h

Слайд 51Caesar.h
#pragma once

#define KEY +3
#define KEY2 -3

void convert(char * str);

//int encode(int

ch, int key);

Caesar.h#pragma once#define KEY +3#define KEY2 -3void convert(char * str);//int encode(int ch, int key);

Слайд 52Caesar.c

Caesar.c

Слайд 53Caesar.c
#include "Caesar.h"

int encode(int ch, int key) {
//char smallLetters[] ="abcdefghijklmnopqrstuvwxyz";
//char bigLetters[]

="ABCDEGGHIJKLMNOPQRSTUVWXYZ";

int newCh = ch;

if (ch >= 'A' && ch

'Z') {
newCh = ch + key;
if (newCh > 'Z')
newCh = 'A' + (newCh - 'Z');
}

if (ch >= 'a' && ch <= 'z') {
newCh = ch + key;
if (newCh > 'z')
newCh = 'z' + (newCh - 'z');
}

return newCh;
}

Слайд 54Caesar.c
void convert(char * str) {
int i;
for (i = 0; str[i]

!= '\0'; i++) {
str[i] = encode(str[i], KEY2);
}
}

Caesar.cvoid convert(char * str) {	int i;	for (i = 0; str[i] != '\0'; i++) {		str[i] = encode(str[i], KEY2);	}}

Слайд 55Работа со словами (файлы)

Работа со словами (файлы)

Слайд 56Задача выделения слов
На входе текстовый файл, содержащий большой текст (книга)

на английском языке.

Нужно создать выходной текстовый файл, где есть весь

текст из входного файла, но слова, содержащие 5 и больше букв помечены звездочками с обеих сторон. (Так делаются жирными фрагменты текста в Skype)


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

Слайд 57Чтение посимвольно - getc
Считывает символ из потока.
int getc( FILE

*stream );

Параметры
stream Входной поток.

Возвращаемое значение
Возвращает считанный

символ. Чтобы указать на ошибку чтения или конец файла, getc возвращает EOF
Чтение посимвольно - getcСчитывает символ из потока. int getc( FILE *stream ); Параметры stream Входной поток. Возвращаемое

Слайд 58Код программы
#define _CRT_SECURE_NO_WARNINGS

#include
#include
#include

void main() {
printf("Start\n");
FILE *fin =

fopen("D:\\temp\\Files\\Lec12\\alice.txt", "rt");
FILE *fout = fopen("D:\\temp\\Files\\Lec12\\alice1_out.txt", "wt");
int is_letter = 0;
char word[81];

// если слово будет длиннее 80 символов – всё сломается!
int word_len = 0;
int ch;
Код программы#define _CRT_SECURE_NO_WARNINGS#include #include #include void main() {	printf(

Слайд 59Код программы (2)
while ((ch = getc(fin)) != EOF)
{
if (isalpha((unsigned char)ch))

{
if (!is_letter) {
word_len = 0;
is_letter = 1;
}
word[word_len++] = ch;
}
//else {

// if (!isalpha(ch)) {
Код программы (2)	while ((ch = getc(fin)) != EOF)	{		if (isalpha((unsigned char)ch)) {			if (!is_letter) {				word_len = 0;				is_letter = 1;			}			word[word_len++]

Слайд 60Код программы (3)
else { // if (!isalpha(ch)) {

if (is_letter) {
word[word_len]

= '\0';

if (word_len >= 5)
fprintf(fout, "*%s*", word);
else
fprintf(fout, "%s", word);
}
is_letter =

0;
fprintf(fout, "%c", ch);
} // else
} // while ((ch = getc(fin)) != EOF)
Код программы (3)		else { // if (!isalpha(ch)) {			if (is_letter) {				word[word_len] = '\0';				if (word_len >= 5)					fprintf(fout,

Слайд 61Код программы (4)
fclose(fin);
fclose(fout);

printf("Done!\n");
{
int x;
scanf("%d", &x);
}
}

Код программы (4)	fclose(fin);	fclose(fout);	printf(

Слайд 62Граф состояний

Граф состояний

Слайд 63Итог работы программы

Итог работы программы

Слайд 64Работа с русским языком

Работа с русским языком

Слайд 65Задача 1 - создать файл в русской кодировке
#include
#include
void

main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char ss[3][80] = {"задача 2",
"Преобразовать файл in2.txt в файл

out2.txt",
"Заменив все большие русские буквы на маленькие“};
FILE * fout = fopen("D:\\temp\\Files\\Lab11_12\\in1.txt", "wt");
// в цикле для всех строк
for (int i = 0; i < 3; i++) {
// сохранить строку в выходной файл
fprintf(fout, "%s\n", ss[i]);
printf(">>%s<<\n", ss[i]);
}
fclose(fout);
}

Слайд 66Источники информации
Работа с русским языком - https://nicknixer.ru/programmirovanie/russkie-simvolybukvy-pri-vvodevyvode-v-konsol-na-c/
Msdn
Википедия

Источники информацииРабота с русским языком - https://nicknixer.ru/programmirovanie/russkie-simvolybukvy-pri-vvodevyvode-v-konsol-na-c/MsdnВикипедия

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

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

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

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

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


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

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