C++各位大神,急求破解
#include<iostream>
using namespace std;
#include<stdio.h>
#include<string.h>
int main()
{
int m,d,i,j,k;
char a[4],b[4]="0/0";
cin>>a;
while(strcmp(a,b)!=0)
{
m=atoi(a.substr (0));
d=atoi(a.substr (3,4));
if(m==8)
d+=31;
int p=0;
for(j=1;j<=10;j++)
{
if(p<d)
p+=j;
else if(p==d)
{
k=12-j;
break;
}
else
{
k=11-j;
break;
}
}
cout<<k<<endl;
cin>>a;
}
return 0;
}
错误如下:
.cpp(13) : error C2228: left of '.substr' must have class/struct/union type
急求破解 c++
[解决办法]
char * 没有 substr函数,string才有,请使用如下形式
char a[]="hello word!"
string str(a);
str.substr(,);
[解决办法]
#include<iostream>
#include<stdio.h>
#include<string.h>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int m,d,i,j,k;
char a[4],b[4]="0/0";
cin>>a;
while(strcmp(a,b)!=0)
{
string str(a);
m=atoi(str.substr (0).c_str());
d=atoi(str.substr (3,4).c_str());
if(m==8)
d+=31;
int p=0;
for(j=1;j<=10;j++)
{
if(p<d)
p+=j;
else if(p==d)
{
k=12-j;
break;
}
else
{
k=11-j;
break;
}
}
cout<<k<<endl;
cin>>a;
}
return 0;
}