注册 登录
编程论坛 C++教室

char *[] 这个怎么用啊?

fejide 发布于 2007-11-24 23:00, 977 次点击
请问这个程序为什么 不能编译通过?

每次char *a[]   这个地方出错?      p.s : 这是一个计算不同单词个数的程序?

#include<iostream.h>   
void   main()     
{     
char *a[]={"i","love","dalian ","i","love","dlut"};
char b[]={"i","love","dalian ","i","love","dlut"};
for(int n=0;n<6;n++)
{
for(int m=1;m<6;m++)
{

 if(b[n].compare(b[m]))
  char b[n]='*';
}
}
for(int i=0;i<6;i++)
{   char  s;
int q=0;
 if(s!='*')
        q++;
cout<<"不相同的单词个数是"<<q<<endl;
}

}
5 回复
#2
无缘今生2007-11-24 23:14
1、compare不是char  的成员函数,不能这样用,经常使用的比较字符串的方法是strcmp,不过在使用它之前还要包含string.h;
2、char *a[]的意思是声明一个指向字符的指针数组,
   char *a[]={"i","love","dalian ","i","love","dlut"};  //这样写没错;
      char b[]={"i","love","dalian ","i","love","dlut"};   //这样写就错了,你定义的是个字符数组!
3、 char  s;
        int q=0;
        if(s!='*')  //在这里,你只是声明了字符变量 s ,你没有对其进行任何赋值的情况下就在对其值进行判断,请问,在该处的 if 语句中, 字符变量的值是什么。
#3
孤魂居士2007-11-24 23:19
我认为楼上兄弟说的很正确
#4
lxpengking2007-11-25 09:10
支持楼上
#5
我是杨过2007-11-25 11:00
有道理
#6
fejide2007-11-25 11:11
回复 2# 的帖子
首先谢谢你,

其次,如果用string []  代替char[]   为什么不行呢?
1