读书人

对这个有关问题很郁闷

发布时间: 2013-03-27 11:22:42 作者: rapoo

对这个问题很郁闷!
#include<iostream>
using namespace std;
int main(void)
{
int strcmp(char *,char *);
char *p,*q,s1[80],s2[80];
int t;
cout<<"请输入两个字符串:"<<endl;
cin>>s1;
cin>>s2
p=s1;
q=s2;
t=strcmp(p,q);
if(t==0)
cout<<"两个字符串相等!"<<endl;
else if(t>0)
cout<<s1<<" 字符串大于 "<<s2;
else
cout<<s2<<" 字符串大于 "<<s1;
return 0;
}
int strcmp(char *p,char *q)
{
for(;(*p)==(*q)||(*p)!='\0'||(*q)!='\0';p++,q++)
;
if((*p)='\0'&&(*q)=='\0')
return 0;
else
return(*(p--)-*(q--));
}

昨天第一遍目测 看错了对这个有关问题很郁闷
[解决办法]
p,q的访问越界
[解决办法]
比较函数里for循环括号里有逻辑错误,*p == *q 后应该用&& 和后面两个(...
[解决办法]
...)连接,全部用或 p和q就一直++,就不知到跑到哪里去了 那一行改成 for(;(*p)==(*q)&&((*p)!='\0'
[解决办法]
(*q)!='\0');p++,q++)
[解决办法]
我只看看讨论意见。
[解决办法]
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
判断是否越界访问,可以在数组的最后一个元素之后对应的地址处设置数据读写断点。如果该地址对应其它变量干扰判断,可将数组多声明一个元素,并设置数据读写断点在该多出元素对应的地址上。

读书人网 >C++

热点推荐