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


Работа со строками в Си

Содержание

Символьная информацияСимвольная константа – это лексема, которая состоит из изображения символов и ограничивающих апострофов.’A’, ’a’, ’b’, ’9’, ’+’, …Специальные символы – управляющие последовательности:’\n’ – перевод строки;’\t’ – горизонтальная табуляция;’\r’ – возврат

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

Слайд 1Работа со строками в Си
Лекция 3

Работа со строками в СиЛекция 3

Слайд 2Символьная информация
Символьная константа – это лексема, которая состоит из изображения

символов и ограничивающих апострофов.
’A’, ’a’, ’b’, ’9’, ’+’, …

Специальные символы

– управляющие последовательности:
’\n’ – перевод строки;
’\t’ – горизонтальная табуляция;
’\r’ – возврат каретки (курсора) к началу строки;
’\\’ – обратная косая черта \;
’\’’ – апостроф (одиночная кавычка);
’\”’ – кавычка (символ двойной кавычки);
’\0’ – нулевой символ;
’\a’ – сигнал-звонок;
’\b’ – возврат на одну позицию;
’\f’ – перевод (прогон) страницы;
’\v’ – вертикальная табуляция;
’\?’ – знак вопроса.



Символьная информацияСимвольная константа – это лексема, которая состоит из изображения символов и ограничивающих апострофов.’A’, ’a’, ’b’, ’9’,

Слайд 3Символьные переменные
Описание символьных переменных:
char список_имен_переменных;
char c, b, l;

Для ввода и

вывода символьных значений в форматных строках библиотечных функций printf и

scanf используется спецификация преобразования %c.
Символьные переменныеОписание символьных переменных:char список_имен_переменных;char c, b, l;Для ввода и вывода символьных значений в форматных строках библиотечных

Слайд 4Пример: необходимо вывести предложение, слова в котором разделены пробелами, и

в конце которого стоит точка
Текст программы :
#include
int main()
{
char z,

s; //z - текущий вводимый символ
printf (“\n Input the sentence:\n“);
for (z = s = ‘ ‘; z != ‘.‘; s = z)
{ /* s – предыдущий символ */
scanf(“%c“, &z);
if (z==‘ ‘ && s==‘ ‘) continue;
printf (“%c“, z);
}
return 0;
}
Пример: необходимо вывести предложение, слова в котором разделены пробелами, и в конце которого стоит точкаТекст программы :#include

Слайд 5Внутренние коды и упорядоченность символов
В языке принято соглашение, что везде,

где синтаксис позволяет использовать целые числа, можно использовать и символы,

т.е. данные типа char, которые при этом представляются числовыми значениями своих внутренних кодов.

Такое соглашение позволяет сравнительно просто упорядочивать символы, обращаясь с ними как с целочисленными величинами.

Таблица ASCII (American Standard Code for Information Interchange) – американский стандартный код для обмена информацией.

Внутренние коды и упорядоченность символовВ языке принято соглашение, что везде, где синтаксис позволяет использовать целые числа, можно

Слайд 6Таблица ASCII

Таблица ASCII

Слайд 7Пример: Печать десятичных цифр
#include
int main ()
{
char z;
for (z='0'; z

z++)
{
if (z =='0' || z=='5')
printf("\n");
printf(" %c-%x ", z, z);
}
return

0;
}

Результат выполнения программы:
0-30 1-31 2-32 3-33 4-34
5-35 6-36 7-37 8-38 9-39
Пример: Печать десятичных цифр#include int main (){	char z;	for (z='0'; z

Слайд 8Пример: Печать латинского алфавита
#include
int main ()
{
char z;
for (z='A'; z

z++)
printf("%c", z);
return 0;
}

Результат выполнения программы:

ABCDEFGHIGKLMNOPQRSTUVWXYZ

Пример: Печать латинского алфавита#include int main (){	char z;	for (z='A'; z

Слайд 9Пример: посчитать сумму десятичных цифр в введенной последовательности символов, заканчивающейся

точкой
#include
int main ()
{
char z;
int s = 0;
do
{
scanf("%c",&z);
if ((z>='0')&& (z

+= z -'0';
}
while (z!='.');
printf("%d\n", s);
return 0;
}

Слайд 10Строковые константы
В программе строковые константы представляются последовательностью изображений символов, заключенной

в двойные кавычки.
Примеры:
"1234567890"
"\t List of users"
" The string start \n

and the string finish\n "

Размещая строку в памяти, транслятор автоматически добавляет в ее конец символ '\0'
Строка – это массив символов, т.е. она имеет тип char[].
Количество элементов в таком массиве на 1 больше, чем изображение соответствующей строковой константы.

В чем различие :
"A" и 'A' ?

Строковые константыВ программе строковые константы представляются последовательностью изображений символов, заключенной в двойные кавычки.Примеры:

Слайд 11Пример: Печать символьной строки
#include
int main ()
{
char B[] = "Hello!";
printf("%s",

B);
return 0;
}

0 1

2 3 4 5 6

’Н’

’l’

’l’

’e’

0

’!’

’o’

B

Пример: Печать символьной строки#include int main (){	char B[] =

Слайд 12Пример: для введенной строки создать новую строку, состоящую только из

маленьких букв латинского алфавита, входящих в нее
#include
int main ()
{
char

A[100], B[100];
int i, j = 0;
printf("Enter string: ");
scanf ("%s", A); // ввод строки с клавиатуры
for (i = 0; A[i]; i++)
if ( (A[i] >= 'a') && (A[i] <= 'z'))
{
B[j] = A[i];
j++;
}
B[j] = '\0'; //вставка в конец строки нуля
printf("%s", B);
return 0;
}

Слайд 13Строки и указатели
Указатель – это переменная, значением которой является адрес.

char

A[20];
/* массив, в который можно записать строку*/
char *B;
/* указатель,

с которым можно связать строку */

scanf ("%s", A); //оператор верен
scanf ("%s", B); //оператор не корректен
Строки и указателиУказатель – это переменная, значением которой является 		адрес.char A[20];/* массив, в который можно записать строку*/char

Слайд 14Библиотека string
#include

Библиотека string#include …

Слайд 15unsigned int strlen(char *s) /* вычисляет длину строки s */
{
int i;
for

(i = 0; s[i]; i++);
return i;
}
...
int l;
char st[10] = ”hello!”;
l

= strlen (st);

0 1 2 3 4 5 6 7 8 9

’h’

’l’

’l’

’e’

0

’!’

’o’

st

unsigned int strlen(char *s) /* вычисляет длину строки s */{	int i;	for (i = 0; s[i]; i++);	return i;}...int

Слайд 16char *strcpy(char *ad, char *as) /* копирует байты строки as в

строку ad*/
{
int i;
for (i=0; as[i]; i++)
ad[i] = as[i];
ad[i] = 0;
return

ad;
}
...
char s1[10], s2[5];
...
strcpy (s1, s2);

’h’

’l’

’l’

’e’

0

’!’

’o’

s1

’t’

’t’

’s’

’e’

0

s2

’t’

’e’

’s’

’t’

0

char *strcpy(char *ad, char *as) /* копирует байты строки as в строку ad*/{	int i;	for (i=0; as[i]; i++)		ad[i]

Слайд 17int strcmp(char *al, char *ar) /* сравнивает строки al и ar:

выдает значение > 0, если al > ar

0, если al < ar = 0, если al = ar */

{
int i;
for (i = 0; (al[i] == ar[i]) && (al[i] != 0); i++);
return (al[i] – ar[i]);
}
...
char s1[10], s2[5];
...
if (strcmp (s1, s2) > 0) // что будет выдано?
...

’h’

’l’

’l’

’e’

0

’!’

’o’

s1

’t’

’t’

’s’

’e’

0

s2

int strcmp(char *al, char *ar) /* сравнивает строки al и ar:   выдает значение  >

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

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

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

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

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


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

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