想破我的猪头都不知道???
程序如下, ------------那个一维还好说,二维就........... 请大家提一下意见~~谢谢~~~
程序大意: 用户输入一句话,查找 一个 用户输入的单词,是则"ture",不是则"false"
#include<iostream>
#include<string>
using namespace std;
class Csentence
{
private:
char zifu[6][8];
public:
Csentence(char *p[8]);----------------??????
bool find(char *p);
void display();
};
//--------------------------------初始话
Csentence::Csentence(char *p[8])
{
for(int i=0;i<6;i++)
strcpy(zifu[i],*(p+i));
}
//-----------------------------查找 单词
bool Csentence::find(char *p)
{
for(int i=0;i<6;i++)
{
int n=strcmp(zifu[i],p);
if(n==0)
return true;
}
return false;
}
//-----------------------主函数
int main()
{
char p[6][8];
char n[6];
cout<<"请输入句子:";
for(int i=0;i<6;i++)
cin>>p[i];
Csentence Cs(*p[8]);//------------------------错误在这里~~~~
cout<<"请输入要查找的单词:";
cin>>n;
Cs.find(n);
return 0;
}
问题点数:20、回复次数:9Top
1 楼River_H(小河)回复于 2005-01-05 20:48:31 得分 0
你不会把那个8全部改成6吗,看来真是......Top
2 楼corrupt(喜欢 睡在床板下 的思考)回复于 2005-01-05 20:53:33 得分 0
恩??? 有区别吗?? 程序还是错的啊~~Top
3 楼muzhi(木子)回复于 2005-01-05 20:54:17 得分 0
char *p[8]与char zifu[6][8];其实是一回事
bool find(char *p);查找单词中的每个字符是否等Top
4 楼corrupt(喜欢 睡在床板下 的思考)回复于 2005-01-05 20:56:25 得分 0
错误提示:
E:\潘多拉魔盒\程序\字符查找.cpp(37) : error C2664: '__thiscall Csentence::Csentence(char *[])' : cannot convert parameter 1 from 'char' to 'char *[]'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.
字符查找.obj - 1 error(s), 0 warning(s)
Top
5 楼dongyuanzhang(阿林)回复于 2005-01-05 21:06:40 得分 0
你应该只传p阿!怎么传(*p[8])?当然错了!Top
6 楼corrupt(喜欢 睡在床板下 的思考)回复于 2005-01-05 21:13:17 得分 0
哦~~~ 我用Csentence Cs(*p[8]) 传 整个句子~~
Cs.find(n); 才是传 单词啊~~
Top
7 楼liqian0108(乐神仙)回复于 2005-01-05 22:14:07 得分 10
楼主的代码下面这样改一下,就应该可以了,楼主看看有没有帮助。
#include<iostream>
#include<string>
using namespace std;
class Csentence
{
private:
char zifu[6][8];
public:
Csentence(char (*p)[8]);//----------------??????
bool find(char *p);
void display();
};
//--------------------------------初始话
Csentence::Csentence(char (*p)[8])
{
for(int i=0;i<6;i++)
strcpy(zifu[i],*(p+i));
}
//-----------------------------查找 单词
bool Csentence::find(char *p)
{
for(int i=0;i<6;i++)
{
int n=strcmp(zifu[i],p);
if(n==0)
return true;
}
return false;
}
//-----------------------主函数
int main()
{
char p[6][8];
char n[6];
cout<<"请输入句子:";
for(int i=0;i<6;i++)
{
for(int j = 0; j < 8; j++)
cin>>p[i][j];
}
Csentence Cs(p);//------------------------错误在这里~~~~
cout<<"请输入要查找的单词:";
cin>>n;
Cs.find(n);
return 0;
}Top
8 楼corrupt(喜欢 睡在床板下 的思考)回复于 2005-01-05 22:22:26 得分 0
呵呵, 楼上的 万分 感谢啊. 我几乎 试过了 (*p)[8],p,*p,p[][],.......
所有的组合,呵呵 , 就是没 试过 你的, 哈哈太谢谢了~~~Top
9 楼liqian0108(乐神仙)回复于 2005-01-05 22:36:59 得分 10
楼主的程序,在main函数中,应该这样修改就完全可以了,其他的部分和上面的修改一样。
int main()
{
char p[2][8] = {(0,0)};
char n[8] = {0};
cout<<"请输入句子:";
for(int i=0;i<2;i++)
{
cin>>p[i];
}
Csentence Cs(p);//------------------------错误在这里~~~~
cout<<"请输入要查找的单词:";
cin>>n;
Cs.find(n);
return 0;
}Top




