新人求指导,下面这个程序有什么错误?
#include<iostream>
#include<ctype.h>
#include<string.h>
using namespace std;
bool GetWord(char* string, char * word, int& wordset);
int main()
{
const int buffersize=255;
char itsstring[buffersize+1];
char itsword[buffersize+1];
int itswordset=0;
cout<<"Please enter some words:"<<endl;
cin.getline(itsstring,buffersize);
while(GetWord(itsstring,itsword,itswordset))
cout<<"Get that word:"<<itsword;
return 0;
}
bool Getword(char* string,char * word, int& wordset)
{
if(wordset==0)
return false;
char *p1;
char *p2;
p1=p2=string+wordset;
for(int i=0;i<(int)strlen(p1)&&!isalnum(p1[0]);i++)
p1++;
if(!isalnum(p1[0]))
return false;
p2=p1;
while(isalnum(p2[0]))
p2++;
int len=(int)(p2-p1);
strncpy(word,p1,len);
word[len]='\o';
for(int j=p2-string;j<(int)strlen(string)&&!isalnum(p2[0]);j++)
p2++;
wordset=p2-string;
return true;
}
[解决办法]
int itswordset=0;这里把itswordset初始化为0,while(GetWord(itsstring,itsword,itswordset))执行循环时itswordset为0,返回false,跳出循环,所以没有输出