首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

相干于指针的用法,困扰好几天了·

2013-01-19 
有关于指针的用法,困扰好几天了··········//在运用指针的过程中总是出问题,对字符串中复制、赋值时指针的用

有关于指针的用法,困扰好几天了··········
//在运用指针的过程中总是出问题,对字符串中复制、赋值时指针的用法有些不懂



#include<iostream.h>
#include<string.h>
char a[20],b[20];
int  examine(char *p1,char *p2);
char sort(char *p);
void main()
{
cout<<"请输入需要破译的两个单词:"<<endl;
cin>>a>>b;
cout<<"examining..."<<endl;
int t=3;
char x,y;//[20][20]
    x=sort(a);//strcpy(x,sort(*a));
y=sort(b);//strcpy(y,sort(*b));
t=examine(x,y);
if(t==0)
cout<<a<<"和"<<b<<"互为易位词"<<endl;
else
cout<<a<<"和"<<b<<"不是易位词"<<endl;
}
char sort(char *p)
{
char exch;
int i,j;
for(i=0;i<=20;i++)
    for(j=i+1;j<=20;j++)
if(p[i]>p[j])
{
exch=p[i];p[i]=p[j];p[j]=exch;
}
return(*p);
}

int examine(char *p1,char *p2)
{
int sum=1;
if(strlen(p1)==strlen(p2))
{
  int i=0,j=0;
  for(i=0;i<=20;i++)
      for(j=0;j<=20;j++)
  {
    if(p1[i]==p2[j])sum=0;
    else   sum=1; 
  }
}
return sum;
}


[解决办法]
char x,y;//[20][20]
t=examine(x,y);
int examine(char *p1,char *p2)
类型不对呀。
[解决办法]

引用:
在定义的时候如果是 char*p 的话会提示要初始化,但是在程序里初始化不太可能啊
但是如果定义 char p[20] 这种类型的话,有很多地方会报错:不能将ch……

char* p = NULL;定义的时候初始化下很正常吧?
如果定义 char x[20] 使用你注释掉的strcpy就可以了。sort返回值得该成char*。

热点排行