Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lec7

.pdf
Скачиваний:
9
Добавлен:
12.02.2015
Размер:
443.41 Кб
Скачать

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

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

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

Пример программы.

Ввести с клавиатуры в виде одной строки арифметическое выражение, включающее 2 положительных целых и знак одной из 4х арифметических операций (+, -, *, /) размещенных между ними и вычислить значение выражения.

Пример программы.

#include <stdio.h> #include <string.h>

#include <stdlib.h> /* для atoi() */ #define SIZE 9

int main ()

{ char expression[99];

char op1[SIZE]; /* первый операнд */ char op2[SIZE]; /* второй операнд */ char operation; /* знак операции */ char * beg;

int len;

int int_exp, int1, int2; puts("Print the expression:"); gets(expression);

Пример программы.

beg = strpbrk(expression,"0123456789"); len = strspn(beg,"0123456789"); strncpy(op1,beg,len);

op1[len] = ’\ 0’; int1 = atoi(op1);

beg = strpbrk(beg,"+/-*"); operation = *beg;

beg = strpbrk(beg,"0123456789"); len = strspn(beg,"0123456789"); strncpy(op2,beg,len);

op2[len] = ’\ 0’; int2 = atoi(op2); switch(operation) {

case ’+’: int_exp = int1 + int2; break; case ’*’: int_exp = int1 * int2; break; case ’-’: int_exp = int1 - int2; break; case ’/’:

Пример программы.

if (int2) {

int_exp = int1 / int2; break; } else {puts("Error! Divisor is 0."); return 0; }

default: puts("Error operation!"); return 0; }

¨

printf("The operand 1 is: %s",op1);

¨

printf("operation=%c", operation);

¨

printf("The operand 2 is: %s",op2);

¨

printf("Expression value: %d",int_exp); return 0;}

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

Print the expression: 35 +5 <ENTER> The operand 1 is: 35 operation=’+’

The operand 2 is: 5 Expression value: 40

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