Работа со строками СИ информатика
Работа со строками по информатике одна из важнейших тем при подготовке к ЕГЭ.
Символьная информация
Символьная константа – это лексема, которая состоит из изображения символов и ограничивающих апострофов.
’A’, ’a’, ’b’, ’9’, ’+’, …
Специальные символы – управляющие последовательности:
’\n’ – перевод строки;
’\t’ – горизонтальная табуляция;
’\r’ – возврат каретки (курсора) к началу строки;
’\\’ – обратная косая черта \;
’\’’ – апостроф (одиночная кавычка);
’\”’ – кавычка (символ двойной кавычки);
’\0’ – нулевой символ;
’\a’ – сигнал-звонок;
’\b’ – возврат на одну позицию;
’\f’ – перевод (прогон) страницы;
’\v’ – вертикальная табуляция;
’\?’ – знак вопроса.
Символьные переменные
Описание символьных переменных:
char список_имен_переменных;
char c, b, l;
Для ввода и вывода символьных значений в форматных строках библиотечных функций printf и scanf используется спецификация преобразования %c.
Пример: необходимо вывести предложение, слова в котором разделены пробелами, и в конце которого стоит точка
Текст программы :
#include <stdio.h>
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;
}
Внутренние коды и упорядоченность символов
В языке принято соглашение, что везде, где синтаксис позволяет использовать целые числа, можно использовать и символы, т.е. данные типа char, которые при этом представляются числовыми значениями своих внутренних кодов.
Такое соглашение позволяет сравнительно просто упорядочивать символы, обращаясь с ними как с целочисленными величинами.
Таблица ASCII (American Standard Code for Information Interchange) – американский стандартный код для обмена информацией.
Таблица ASCII
Пример: Печать десятичных цифр
#include <stdio.h>
int main ()
{
char z;
for (z=’0′; z<=’9′; 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 <stdio.h>
int main ()
{
char z;
int s = 0;
do
{
scanf(«%c»,&z);
if ((z>=’0′)&& (z<=’9′))
s += z -‘0’;
}
while (z!=’.’);
printf(«%d\n», s);
return 0;
}