このプログラムに問題があります。プログラムのコンパイルが成功した後、コンパイラは次
のように表示します。 Enter」を押してコンソールを終了すると、間違い - 未処理の例外が発生します。修正方法は?どうもありがとう!
# include <iostream>
# include <cstring>
using namespace std;
template < class T>
void switcher(T &a, T &b){
T c=a;
a=b;
b=c;
}
char* f(char* word){
static char* ss("u");
static int iter(0);
cout<<"word \""<<word<<"\" has been thrown\n";
if ( strcmp(word,ss)!=0 && strcmp(word,"")!=0) {ss=word; iter=0;} //if another word has been thrown
cout<<"ss="<<ss<<" iter="<<iter<<endl;
static char ret[15];//return word value
memset(ret, '\0', 14);//clean up ret value
int len = strlen(ss);
int j=0;
if (iter == len-1) return nullptr;//we have reached the end of word
for (int i=iter;i<len;i++){
//cout<<"*(ss+i)="<<*(ss+i)<<endl;
if (*(ss+i)!=' ') ret[j]=*(ss+i);
else { iter=i+1; return ret;}
//cout<<*(ss+i);
j++;
if(i==len-1) {iter=i+1; return ret;}
}
return nullptr;
}
int main(){
int a=1,b=2;
cout<<f("fr rewfer ewr")<<endl;
cout<<f("fr rewfer ewr")<<endl;
cout<<f("43 34")<<endl;
cout<<f("")<<endl;
cout<<f("")<<endl;
cout<<f("fr rewfer ewr")<<endl;
//char ss[]("fr rewfer ewr");
//size_t len = (sizeof ss)/(sizeof ss[0]);
// cout<<"len="<<len<<endl;
system("PAUSE");
return 0;
}