33,312
社区成员
发帖
与我相关
我的任务
分享
class StringArray
{
String *m_sa;
int m_sz;
public:
StringArray();
};
StringArray::StringArray()
{
int x=sizeof(String);
m_sz=20; m_sa=(String*)malloc(sizeof(String)*m_sz);//本Array开辟20个String对象
m_sa[0]="";//调试发现等号左边String对象的私有成员变量没有初始化
}
#include <stdio.h>
char s[]="123 ab 4";
char *p;
int v,n,k;
void main() {
p=s;
while (1) {
k=sscanf(p,"%d%n",&v,&n);
printf("k,v,n=%d,%d,%d\n",k,v,n);
if (1==k) {
p+=n;
} else if (0==k) {
printf("skip char[%c]\n",p[0]);
p++;
} else {//EOF==k
break;
}
}
printf("End.\n");
}
//k,v,n=1,123,3
//k,v,n=0,123,3
//skip char[ ]
//k,v,n=0,123,3
//skip char[a]
//k,v,n=0,123,3
//skip char[b]
//k,v,n=1,4,2
//k,v,n=-1,4,2
//End.
[/quote]
把这里的void改成int,<stdio.h>改成<cstdio>,然后加一堆std::就是所谓的纯C++了。
void outputResult( string word )
{
stringstream wordStream{ word };
int Number;
if( wordStream >> Number )
{
cout << "Get Number: " << Number << endl;
}
else
{
cout << "Skip chars : " << word << endl;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
string source = "123 ab 4";
string word;
stringstream sourceStream{ source };
while( sourceStream >> word )
{
outputResult( word );
}
return 0;
}
#include <stdio.h>
char s[]="123 ab 4";
char *p;
int v,n,k;
void main() {
p=s;
while (1) {
k=sscanf(p,"%d%n",&v,&n);
printf("k,v,n=%d,%d,%d\n",k,v,n);
if (1==k) {
p+=n;
} else if (0==k) {
printf("skip char[%c]\n",p[0]);
p++;
} else {//EOF==k
break;
}
}
printf("End.\n");
}
//k,v,n=1,123,3
//k,v,n=0,123,3
//skip char[ ]
//k,v,n=0,123,3
//skip char[a]
//k,v,n=0,123,3
//skip char[b]
//k,v,n=1,4,2
//k,v,n=-1,4,2
//End.