读书人

各位大神~上面有段错的代码。到底char

发布时间: 2012-10-13 11:38:17 作者: rapoo

各位大神~下面有段错的代码。到底char*和char&和char的关系是什么
void insert(char &s,int si,char *t)
{
char str[100];
t=str;
int m;
int n = strlen(&s);
cout<<"请输入要插入子串长度"<<endl;
cin>>m;
cout<<"请输入要插入的子串"<<endl;
for(int i=0;i<m;i++)
{
cin>>str[i];
}
cout<<"请输入要插入子串的位置"<<endl;
cin>>si;
for(int j=m+n-1;j>si-1;j--)
{
s[j]=s[j-m];
}
int k=0;
for(int l=si-1;l<si-1+m;l++)
{
s[l]=&str[k];
k++;
}
cout<<"则新生成的串为"<<endl;
for(int p=0;p<m+n;p++)
{
cout<<&s[p]<<" ";
}
cout<<endl;
}
为什么我不能s[j]=s[j-m];s[l]=&str[k];以及cout<<&s[p]<<" ";

[解决办法]
void insert(char &s,int si,char *t)
s 是引用,你要把它当作char来用,而不能用下标,t是指针,可以用下标取内容

[解决办法]
char &s
s以引用方式传进来,s只是一个字符,不是字符串,不能对其用[]运算符

读书人网 >C++

热点推荐