c语言中加法算式计算,不知道哪错了,这两空

img

代码:#include<stdio.h>
#include<string.h>
int getOperIndex(char express[])
{
int len=strlen(express),i;
for(i=0;i<len;i++)
{
char ch=express[i];
if(ch=='+')
return i;
}
return -1;
}
int Str2Num(char str[])
{
int len=strlen(str);
int num=0,i;
for(i=0;i<len;i++)

num=num*10+str[i];

  return    num;

}
int main(int argc,char **argv)
{
char express[100];
gets(express);
int index=getOperIndex(express);
char str1[100]={0},str2[100]={0};
strncpy(str1,express,index);

strcpy(str2,express+1+index);

    int  num1=Str2Num(str1);
    int  num2=Str2Num(str2);
    printf("%d",num1+num2);
    return  0;

}

供参考:

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

int getOperIndex(char express[])
{
    int len=strlen(express),i;
    for(i=0;i<len;i++)
    {
        char ch=express[i];
        if(ch=='+')
                return i;
    }
    return -1;
}
int Str2Num(char str[])
{
    int len=strlen(str);
    int num=0,i;
    for(i=0;i<len;i++)
        num=num*10+str[i]-'0';
    return  num;
}

int main(int argc,char **argv)
{
    char express[100];
    gets(express);
    int index=getOperIndex(express);
    char str1[100]={0},str2[100]={0};
    strncpy(str1,express,index);
    strncpy(str2,express+index+1,strlen(express)-index);
    int  num1=Str2Num(str1);
    int  num2=Str2Num(str2);
    printf("%d\n",num1+num2);
   
    return  0;
}