在C语言中对字符执行算术
我正在尝试编写一个程序,可以对字符串进行加、减、乘和除。我现在正在研究如何将输入字符串拆分为两个字符串,然后执行相应的+-/* 输入应类似于abc+aaa 它的输出应该是abc+aaa=bcd 如何将字符串转换为整数字符串在C语言中对字符执行算术,c,string,math,char,int,C,String,Math,Char,Int,我正在尝试编写一个程序,可以对字符串进行加、减、乘和除。我现在正在研究如何将输入字符串拆分为两个字符串,然后执行相应的+-/* 输入应类似于abc+aaa 它的输出应该是abc+aaa=bcd 如何将字符串转换为整数字符串 #include <stdio.h> #include <math.h> #include <string.h> int main() { printf("This is a pseudo arithmetic program");
#include <stdio.h>
#include <math.h>
#include <string.h>
int main() {
printf("This is a pseudo arithmetic program");
char input[10];
input[10] = '\0';
char first [9];
first[9] = '\0';
char last [9];
last[9] = '\0';
int i = 0;
int b;
int e;
while (input[0] != '0') {
if (input[0] == 0){
return -1;
}
printf("\nEnter a math problem in SOS format using only lowercase letters up to 9 characters");
printf("\nEx: abc+abc... type '0' to quit \n");
scanf("%s", input);
int x = 0;
x = strlen(input);
if (strchr(input, '+')){
for (i = 0; i <= x; i++) {
if (i == '+')
strncpy(first, &input[0], i-1);
i = 0;
}
for (i = x; i >= input[0]; i--) {
if (i == '+')
strncpy(last, &input[i], x);
i = 0;
}
printf("%s", first);
printf(" + ");
printf("%s", last);
printf(" = %d", first + last);
}
#包括
#包括
#包括
int main(){
printf(“这是一个伪算术程序”);
字符输入[10];
输入[10]='\0';
字符优先[9];
第一个[9]='\0';
最后一个字符[9];
最后[9]='\0';
int i=0;
int b;
INTE;
while(输入[0]!=“0”){
如果(输入[0]==0){
返回-1;
}
printf(“\n以SOS格式输入一道数学题,仅使用小写字母,最多9个字符”);
printf(“\nEx:abc+abc…键入“0”退出\n”);
扫描频率(“%s”,输入);
int x=0;
x=strlen(输入);
if(strhr(输入“+”)){
对于(i=0;i=input[0];i--){
如果(i='+')
strncpy(最后一个,&输入[i],x);
i=0;
}
printf(“%s”,第一个);
printf(“+”);
printf(“%s”,最后一个);
printf(“=%d”,第一个+最后一个);
}
您的代码似乎存在多个问题:
输入[10]='\0'
input [9] = '\0'
数组索引始终从0开始
(输入[0]-“a”)+1
将字母a、b、c转换为1、2、3等希望这些指针能有所帮助。建议您再次检查问题陈述,并相应地重构代码。那么输入字符串的基数是多少?看起来可能是基数26,a=(第一个非零值)?如果是这样,那么零值是多少?我可能只是愚蠢地不知道SOS格式是什么,但谷歌似乎没有帮助。只需将2个字符相加,然后减去字符
'a'
。我不确定你所说的基数是什么意思,但我相信a-z等于0-25,而a-z等于26-41。如果程序是要解决这个问题a-a,那么答案应该是Z。我认为根本不存在零值。NHAHDH你能详细说明一下吗?