fun(char *a,char *b) { while(*a! ='\0')&&(*b! = '\0')&&(*a= =*b)} { a+ +; b+ +;} return(*a-*b); }详
3个回答
展开全部
1 你的程序有错,先改正如下:
int fun(char *a,char *b) //函数应该有返回类型的
{
while((*a!='\0')&&(*b!= '\0')&&(*a==*b)) //原来的括号不配对
{ a++; b++;}
return(*a-*b);
}
2 程序的功能是从头开始比较两个字符串,当发现有不相同的字符时,返回两字符的ASCII码的差值,若两字符完全相同,由返加0。
fun("abc","abd") 返回-1 'c'-'d'=-1
fun("abc","ab") 返回99 'c'-'\0'=99
fun("abc","abc") 返回0
int fun(char *a,char *b) //函数应该有返回类型的
{
while((*a!='\0')&&(*b!= '\0')&&(*a==*b)) //原来的括号不配对
{ a++; b++;}
return(*a-*b);
}
2 程序的功能是从头开始比较两个字符串,当发现有不相同的字符时,返回两字符的ASCII码的差值,若两字符完全相同,由返加0。
fun("abc","abd") 返回-1 'c'-'d'=-1
fun("abc","ab") 返回99 'c'-'\0'=99
fun("abc","abc") 返回0
更多追问追答
追问
(*a= =*b)是什么意思?
追答
(a*==*b)两等号之间无空格,否则报错!表示判断a所指的字符与b所指的字符是否相等,相等为真,不相等为假。
展开全部
->a[0]表示p首地址偏移一个字节(8bit),这个也是i的第一个字节(8bit)的地址,所以i的前8bit也被相应附值为0x39.依次类推...
所以p->i(注意:不是p.i)的值为0x00003839(PS:如果p被初始化过的话)。
所以p->i(注意:不是p.i)的值为0x00003839(PS:如果p被初始化过的话)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-01-07
展开全部
因为只要a和b前面有相同的字符,就一直把指针往后挪
直到到达一个字符串的末尾或者两个字符串有不同字符的位置
然后对该不同字符的ASCII码进行做差,ASCII码小的那个字串会被认为是值小的字串
D
直到到达一个字符串的末尾或者两个字符串有不同字符的位置
然后对该不同字符的ASCII码进行做差,ASCII码小的那个字串会被认为是值小的字串
D
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询