Содержание
- 2. АЛГОхитрости Типовые алгоритмические приёмы работы с символами и строками Вывод на экран (печать) изображения символа ASCII
- 3. АЛГОхитрости Типовые алгоритмические приёмы работы с символами и строками Символьные рамочные терминальные условия цикла. В качестве
- 4. АЛГОхитрости Типовые алгоритмические приёмы работы с символами и строками Строка – целое число (в цикле). #include
- 5. АЛГОхитрости Типовые алгоритмические приёмы работы с символами и строками 5. Строка – вещественное число. C /
- 6. АЛГОхитрости Типовые алгоритмические приёмы работы с символами и строками 6. Удаление начальных пробелов в строке. #include
- 7. АЛГОхитрости Типовые алгоритмические приёмы работы с символами и строками 7. Особенности ввода строк функцией scanf со
- 9. Скачать презентацию
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Вывод на экран
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Вывод на экран
C / С++
Используются спецификаторы формата вывода:
Спецификатор формата %с выведет на экран собственно символ,
Спецификатор формата %i (%d) выведет на экран код символа.
Пример: printf("Символ: %c Код: %i\n", ‘F’, ‘F’);
Примечание:
Операция int n = 'h'+'e'+'l'+'l'+'o'; выполнит арифметическое суммирование значений кода символов: n = 532
И+ПРГ
Организация терминального условия в цикле до конца строки.
Терминальное условие автоматичес-ки становится ложным, когда встре-чает при пробеге по строке 0-символ (\0, точнее \x0 – 16иричный ноль).
Пример: while (str[i]) // цикл продолжается до \0
Но можно использовать функцию:
strlen (str) – текущая длина строки str,
Пример: int n = strlen(str);
while (i < n)
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Символьные рамочные терминальные условия
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Символьные рамочные терминальные условия
В качестве терминального условия в циклах и рекурсивных функциях обработки строк может использоваться рамочный диапазон символов:
Например,
для проверки попадания символа строки в диапазон символов-цифр терминальное условие при пробеге по строке будет:
while ((st[i] >= '0') && (st[i] <= '9')) – в C
И+ПРГ
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Строка – целое число
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Строка – целое число
#include C / С++ И+ПРГ продолжение
#include
void main()
// Проверка, является ли строка
целым числом
{
char st[20]; // строка
int i; // номер проверяемого
символа строки
printf("\n Введите число и нажмите Enter \n");
printf ("-> ");
scanf ("%s", st);
i = 0;
while ((st[i] >= '0') && (st[i] <= '9'))
i++;
см. продолжение
printf("/n Введённая строка ");
if (st[i]) // st[i] - \0, если введены
только цифры
printf("не ");
printf("является целым числом.");
printf("\n\nДля завершения нажмите Enter");
getch();
}
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
5. Строка – вещественное
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
5. Строка – вещественное
C / С++
#include продолжение И+ПРГ
#include
void main()
// Является ли строка дробным числом без знака
{ char st[20]; // строка
int i; // номер проверяемого символа
строки
int ok=0; // пусть, строка - не дробное число
printf("\n Введите число и нажмите
Enter\n");
printf ("-> "); scanf ("%s", st);
i = 0;
if((st[i]>='0')&&(st[i]<='9')) //первый
символ - цифра
{ while ((st[i] >= '0') && (st[i] <= '9'))
i++;
см. продолжение
if (st[i] == '.') // за цифрами должна быть точка
{ i++;
// за точкой должна быть хотя бы одна цифра
if ((st[i] >= '0') && (st[i] <= '9'))
{ // и ещё цифры
while ((st[i]>='0')&&(st[i]<='9'))
i++;
ok = 1; // похоже строка - дробное
число
} } }
printf("\nCтрока %s ", st);
if (st[i] || !ok)
printf("не ");
printf("является дробным числом
без знака.");
printf("\n\nДля завершения
нажмите Enter");
getch(); }
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
6. Удаление начальных пробелов
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
6. Удаление начальных пробелов
#include Более оптимально сделать так: И+ПРГ
#include
main()
{ int i; char str[100]; // Массив для строки
printf("\nВведите строку символов:\n");
gets(str); // Вводим строку
while (str[0]==' ') /* если первый символ пробел, то сдвигаем массив влево на одну позицию */
{ for (i=0; i
printf("\nИсправленная строка:\n%s\n",str);
}
int k=0, n = strlen (str);
while (str[k]==' ') k++; // считаем пробелы
{ // смещаем строку на k символов
for (i=k; i<=n; i++)
str[i - k]=str[i]; }
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
7. Особенности ввода строк
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
7. Особенности ввода строк
Для чтения из входного потока строки можно использовать функцию scanf() со спецификатором преобразования %s. Использование спецификатора преобразования %s заставляет scanf() читать символы из буфера клавиатуры до тех пор, пока не встретится какой-либо разделитель. Читаемые символы помещаются в элементы символьного массива, на который указывает соответствующий аргумент, а после введенных символов еще добавляется символ конца строки ('\0'). И+ПРГ
Разделителем может быть пробел, разделитель строк, табуляция, вертикальная табуляция или подача страницы. В отличие от функции gets(), которая читает строку, пока не будет нажата клавиша
При вводе строки функцией scanf разделители, расположенные перед первым значащим символом строки – не вводятся (пропускаются).
Пример: ввод строки " привет всем":
#include
int main(void)
{ char str[80];
printf("Введите строку: ");
scanf("%s", str);
printf("Вот Ваша строка: %s", str);
return 0; }
Программа выведет только часть строки, то есть слово "привет", без пробелов.