lec7
.pdfНекоторые функции работы со строками.
Некоторые функции работы со строками.
Некоторые функции работы со строками.
Пример программы.
Ввести с клавиатуры в виде одной строки арифметическое выражение, включающее 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