Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Ввод-вывод строковых данных





При вводе строк, как и символов, используется функция scanf(). При этом для форматного ввода и вывода строк используется спецификатор %s. Однако нажатие клавиши [Enter] или клавиши [пробел] не является значимым символом. При вводе строки с помощью функции scanf() нажатие одной из этих клавиш формирует символ конца строки. Таким образом надо помнить, что функция scanf() позволяет записать в строку только одно слово.

Пример. Организовать ввод ФИО студента.

char fam[20];

printf (" Введите фамилию и инициалы студента");

scanf(" %s", fam);

На клавиатуре строка набирается без кавычек, например:

Андреева С.В. [Enter]

Одновременно с вводом строки в байт с индексом восемь запишется символ с кодом 0. Инициалы студента в эту строку записаны не будут, так как пробел после фамилии будет воспринят командой scanf как конец строки.

Для ввода текста содержащего пробелы следует использовать специальную функцию gets(). При вводе строки с помощью этой функции только нажатие клавиши [Enter] сформирует символ конца строки.

Так, например, в предыдущей задаче:

char fam[20];

printf(“Введите фамилию и инициалы студента”);

gets(fam);

использование функции gets() позволит записать в строку fam не только фамилию, но и инициалы.

Вывод строк осуществляется с помощью функции printf() и специальной функции puts(). Например, оператор

printf(“| %20s|”, fam);

выведет на экран в правую часть поля из 20 позиций строку fam:

| Андреева С.В.|

Специальная функция puts() позволяет вывести содержимое строки и переводит курсор на следующую строку. Например:

putchar(‘|’); puts(fam); putchar(‘|’);

приведет к получению следующего результата:

|Андреева С.В.

|

Последний символ будет выводиться в следующей строке экрана.

Обработка строковых данных

К любому символу строки можно обратиться как к элементу одномерногомассива, например, запись st[i] определяет i-ый символ в строке st. Поэтому при решении некоторых задач обработку строковых данных можно проводить посимвольно, организуя циклы для просмотра строки.

Например: Дано предложение. Определите количество слов в нем.

Решение:

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

#include " stdafx.h"

#include< string.h>

int main()

{ char slova[120];

int i, n, k=1;

printf(" Введите предложение\n");

gets(slova);

n= strlen(slova); // функция strlen() возвращает длину строки

for(i=0; i< n; i++)

if(slova[i]==' ')k++; //поиск и подсчет пробела

printf(" k=%d\n", k);

return 0;

}







Дата добавления: 2014-11-12; просмотров: 630. Нарушение авторских прав; Мы поможем в написании вашей работы!




Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Дизартрии у детей Выделение клинических форм дизартрии у детей является в большой степени условным, так как у них крайне редко бывают локальные поражения мозга, с которыми связаны четко определенные синдромы двигательных нарушений...

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

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

Плейотропное действие генов. Примеры. Плейотропное действие генов - это зависимость нескольких признаков от одного гена, то есть множественное действие одного гена...

Методика обучения письму и письменной речи на иностранном языке в средней школе. Различают письмо и письменную речь. Письмо – объект овладения графической и орфографической системами иностранного языка для фиксации языкового и речевого материала...

Классификация холодных блюд и закусок. Урок №2 Тема: Холодные блюда и закуски. Значение холодных блюд и закусок. Классификация холодных блюд и закусок. Кулинарная обработка продуктов...

Studopedia.info - Студопедия - 2014-2025 год . (0.011 сек.) русская версия | украинская версия