Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
oop12.doc
Скачиваний:
17
Добавлен:
06.02.2016
Размер:
1.13 Mб
Скачать

2.1. Функции ввода/вывода строк

2.1.1 Работа со строками как с массивом символов

getch()

Функция Вводит символ с консоли без эхопечати (getch). Или с эхопечатью (getche)

Синтаксис #include<conio.h>

int getch(void);

int getche(void);

Файл, содержащий conio.h

прототип

Описание Функция getch читает один символ,

непосредственно с консоли, без вывода его на экран.

Возвращаемое getch возвращает введенный с клавиатуры символ.

значение

Переносимость Функция уникальна для DOS. Функция не

совместима с Windows.

2.1.2 Строка как единое целое

С другой стороны C++ включает специальные функции для ввода/вывода строк как единого целого.

gets(str1) Вводит строку символов из потока

Синтаксис #include<stdio.h>

char *gets(char *s);

Файл, содержащий stdio.h

прототип

Описание Функция gets читает строку

символов, оканчивающуюся символом

перевода строки в переменную *s из

стандартного входного потока stdin. Данная символьная строка оканчивается

символом перехода на новую строку, который

при записи в *s заменяется на нулевое

окончание (\0).

В отличие от scanf, gets позволяет вводить

строки, содержащие символы пробела и

табуляции. Все, что было введено до

перевода каретки, помещается в s.

Возвращаемое При успешном завершении, функция gets

значение возвращает строку s; при достижении конца

файла (EOF) или ошибке возвращается NULL.

Переносимость Функции поддерживаются на системах

UNIX и стандартом ANSI C. Функция не

совместима с Windows.

2.1.3.Строка как одно слово или строка фиксированной длины

Scanf(“%s”,&s)

Вводит все символы вплоть до пробела(не включая.

Scanf(“%<n>s”,&s)

Вводит n символов, где n указывает ширину поля ввода.

2.2. Другие функции работы со строками

Таблица 1 - Функции работы со строками

Функция

Прототип и краткое описание функции

strcmp

int strcmp(const char *str1, const char *str2); Сравнивает строки str1 и str2. Если str1< str2, то результат отрицательный, если str1 = str2, то результат равен 0, если str1> str2, то результат положительный.

strcpy

char* strcpy(char*s1, const char *s2); Копирует байты из строки s1 в строку s2

strdup

char *strdup (const char *str); Выделяет память и переносит в нее копию строки str.

strlen

unsigned strlen (const char *str); Вычисляет длину строки str.

strncat

char *strncat(char *s1, const char *s2, int kol); Приписывает kol символов строки s1 к строке s2.

strncpy

char *strncpy(char *s1, const char *s2, int kol); Копирует kol символов строки s1 в строку s2.

strnset

char *strnset(char *str, int c, int kol); Заменяет первые kol символов строки s1  символом с.

Строки, при передаче в функцию, в качестве фактических параметров могут быть определены либо как одномерные массивы типа char[], либо как указатели типа char*.  В отличие от обычных массивов в этом случае нет необходимости явно указывать длину строки.

Функции преобразования строки S в число:

целое:  int atoi(S); длинное целое:  long atol(S); действительное:  double atof(S); при ошибке возвращает значение 0.

Функции преобразования числа V в строку S:

целое:  itoa(int V,char S,int kod); длинное целое:  ltoa(long V,char S,int kod); 2<=kod<=36, для отрицательных чисел kod=10.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]