我正在编写一个今晚午夜到期的程序,我完全被卡住了。该程序是用 C 编写的,并以 SOS 的形式从用户那里获取输入,其中 S = 字符串,O = 运算符(IE '+'、'-'、'*'、'/')。书中的输入输出示例如下:
输入> abc+aab
输出:abc + aab => bce
这是字面上的,而不是可变的。就像,a + a 必须 = b。
执行此操作的代码是什么?我将发布到目前为止的代码,但它所做的只是获取输入并将其划分为每个部分。
#include <stdio.h>
#include <string.h>
int main() {
system("clear");
char in[20], s1[10], s2[10], o[2], ans[15];
while(1) {
printf("\nInput> ");
scanf("%s", in);
if (in[0] == 'q' && in[1] == 'u' && in[2] == 'i' && in[3] == 't') {
system("clear");
return 0;
}
int i, hold, breakNum;
for (i = 0; i < 20; i++) {
if (in[i] == '+' || in[i] == '-' || in[i] == '/' || in[i] == '*') {
hold = i;
}
if (in[i] == '\0') {
breakNum = i;
}
}
int j;
for (j = 0; j < hold; j++) {
s1[j] = in[j];
}
s1[hold] = '\0';
o[0] = in[hold];
o[1] = '\0';
int k;
int l = 0;
for (k = (hold + 1); k < breakNum; k++) {
s2[l] = in[k];
l++;
}
s2[breakNum] = '\0';
printf("%s %s %s =>\n", s1, o, s2);
}
}