字符操作问题,求指出程序错误
#include <iostream>#include <string>
using namespace std;
int main()
{
string a;
string temp;
string::size_type i,k=0;
cout<<"请输入字符,程序将输出一个无标点的字符串。"<<endl;
cin>>a;
for (i=0;i<a.length();i++)
{
if (!ispunct(a[i]))
{
temp[k]=a[i];
k++;
}
}
printf("OK");
cout<<temp<<endl;
return 0;
}