Рейтинг@Mail.ru
Menu
Скачать картинки на телефон бесплатно.
Заставки для телефона, аватарки.
(Вырезать из фотографии)

Роза `Гренд Могул` Яхта `Алиса` Лесное озеро Музей `Пирогово` Белочка
Выберите рубрику (тему)

Обработка символьной информации

Программирование на C и C++
Программа 6

Цель работы

Овладеть методами и функциями обработки символьной информации

Составить процедуру построения строки символов, которая является записью заданного действительного числа в десятичной, двоичной и 16-ричной системах исчисления. Строка должна содержать указанное количество цифр после запятой



Описание переменных


Имя
Тип
Назначение

value

float

Заданное число

number

int

Количество знаков после запятой

radix

int

Система счисления

string[128]

char

Строка символов, которая является записью заданного действительного числа в десятичной, двоичной и 16-ричной системах исчисления


Описание функций


Имя функции Тип значения, которое возвращается Назначение Параметры
Имя Тип Назначение
main void Главная функция программы - - -
tostring void Процедура построения строки символов val float Заданное число
num int Количество знаков после запятой
rad int Основа системы счисления
st char* Строка символов, которая возвращается

Текст программы


#include <stdio.h>


#include <conio.h>


#include <string.h>


#include <stdlib.h>


void tostring(float, int, int, char * );


void main()


{
    /* http://nataliya.kiev.ua/?id=125 */
    char string[128];
    float value;
    int number, radix;
    clrscr();
    puts("Enter number of digits after point");
    scanf("%d", & number);
    puts("Enter value");
    scanf("%f", & value);
    printf("String, with this value in 2 number system:\n");
    radix = 2;
    tostring(value, number, radix, string);
    puts(string);
    printf("String, with this value in 8 number system:\n");
    radix = 8;
    tostring(value, number, radix, string);
    puts(string);
    printf("String, with this value in 10 number system:\n");
    radix = 10;
    tostring(value, number, radix, string);
    puts(string);
    printf("String, with this value in 16 number system:\n");
    radix = 16;
    tostring(value, number, radix, string);
    puts(string);
    getch();
}

void tostring(float val, int num, int rad, char * st)


{
    int i = 0, tmp = 0;
    char str2[128];
    itoa(int(val), st, rad);
    strcat(st, ".");
    val = val - int(val);
    while (i < num)
    {
        val = val * rad;
        tmp = int(val);
        val = val - int(val);
        itoa(tmp, str2, rad);
        strcat(st, str2);
        ++i;
    }
}

Print

Печатать текст программы!



Source code: «Обработка символьной информации».

Редактировать, копировать

(WYSIWYG редактор «NicEdit»)
Загрузить файл с текстом программы: «Обработка символьной информации». Печатать текст программы!

Загрузить файл с текстом программы

(Prg6.c - Windows-1251)


Результат работы программы


1)
Enter number of digits after point
5
Enter value
15.2
String, with this value in 2 number system:
1111.00110
String, with this value in 8 number system:
17.14631
String, with this value in 10 number system:
15.19999
String, with this value in 16 number system:
f.33333

2)
Enter number of digits after point
5
Enter value
2.25
String, with this value in 2 number system:
10.01000
String, with this value in 8 number system:
2.20000
String, with this value in 10 number system:
2.25000
String, with this value in 16 number system:
2.40000

Теория к программе


 

Символьная константа

состоит из одного символа ASCII между апострофами ('').

Примеры специальных символов

:

Новая строка

 '\n'

Горизонтальная табуляция

 '\t'

Возвращение каретки

 '\r'

Апостроф

 '\''

Кавычка

 '\"'

Нулевой символ

 '\0'

Обратный слеш

 '\\'


  Стринги есть одним из наиболее полезных и важных типов данных языка С.

Символьная строка (стринг)

- это массив символов, запертый у кавычка ("). Он имеет тип char.

Нулевой символ (\0)

автоматически прибавляется последним байтом символьной строки и выполняет роль признака его конца.

Количество элементов в массиве

равняется количеству символов в стрингу плюс один, поскольку нулевой символ также является элементом масива. Каждая

стрингова константа

, даже в случае, когда она идентичная другой стринговiй константе, сохраняется в отдельном месте памяти. Если необходимо ввести в строку символ кавычки ("), то перед ним надо поставить

символ обратного слешу (\)

. В стринг могут быть введенные любые специальные символьные константы, перед которыми стоит символ \.

 

Прототипы всех функций, которые работают со строками символов, содержатся в файле string.h

. Все функции работают со строками, которые заканчиваются нулевым символом. Вот некоторые из них:

   

int strcat( char *, char *)

- соединить два стринги;
   

int strcpy(char *s1, char *s2)

- копировать строку s2 в строку s1;
   

int strlen(char *s)

- определить длину строке (количество символов без нулевого символа).

 

Для работы с массивом символов, который не имеет в конце нулевого байта, можно пользоваться функциями преобразования буферов

. Протипи этих функций находятся в файле mem.h. Эти функции разрешают присваивать каждому байту в пределах указанного буфера заданное значение, а также используются для сравнения содержимого двух буферов. Например:

   

memcpy()

- копирование символов с одного буфера во второй, пока не будет скопирован заданный символ или не будет скопировано определенное количество символов
   

memcmp()

- сравнивает указанное количество символов с двух буферов

 

В файле ctype.h описаны прототипов функций, которые предназначены для проверки букв

. Эти функции возвращают ненулевое значение (истина), когда ее аргумент удовлетворяет заданному условию или принадлежит указанному классу букв, и нуль в другом случае. Например:

   

int islower(int с)

- символ с является малой буквой;
   

int isupper(int c)

- символ с является большой буквой;
   

int isalnum(int c)

- символ с является буквой или цифрой;
   

int isalpha(int c)

- символ с является буквой;
   

int tolower(int c)

- преобразование буквы в нижний регистр;
   

int strtol(int c)

- преобразование стрингу в длинное целое число;


Дата: 2008-03-29   Автор: Admin
Случайный анекдот

Сидит сынишка задумчиво и грустно. Подходит его мама и спрашивает:
- Ты что такой грустный и задумчивый?
- Да вот у меня скоро день рождения - подарок хочется.
- И какой тебе подарок хочется?
- Четыре метра памяти.
Дата: 11-10-2004   Автор: Admin   Подрубрика: Компьютеры и дети