使用指针将字符串转换为数值,运行时为啥错误

#include
using namespace std;
int main()
{
constexpr int MAX = 20;
char s[MAX] {0};
cin.getline(s,MAX);
char *p = s;
bool isNegative = false;
int num =0;
while(*p !='\0')
{
if(*p >='0' && p<='9')
{
num=num
10+(*p-'0');
}
else if(p == '-' && p == s)
{
isNegative = true;
}
p++;
}
if(isNegative == true)
cout<<-1
num<<endl;
else
cout<<num<<endl;
return EXIT_SUCCESS;
}

有些错误,有些帮你改了,有些不知道你想干嘛帮你注释出来了

#include<iostream>
using namespace std;
int main()
{
    constexpr int MAX = 20;
    char s[MAX]{ 0 };
    cin.getline(s, MAX);
    char* p = s;
    bool isNegative = false;
    int num = 0;
    while (*p != '\0')
    {
        if (*p >= '0' && *p <= '9')  //p少一个*
        {
            num = num10 + (*p - '0');  //num与10之间缺少操作符?
        }
        else if (*p == '-' && p == s) //p少一个*
        {
            isNegative = true;
        }
        p++;
    }
    if (isNegative == true)
        cout << -1num << endl;  //-1num?
    else
        cout << num << endl;
    return EXIT_SUCCESS;
}