编程的理解,一点小问题
函数fun功能是:逐个比较a,b两个字符串对应位置中的字符,把ASCII值大或相等的字符一次存放在c数组中,形成一个新的字符串。例如:若a中的字符串为aBCDeFgH,b中的字符串为ABcd.则c中的字符串为:aBcdeFgH
#include <stdio.h>
#include <string.h>
void fun(char *p,char *q,char *c)
{
int k=0;
while(*p || *q) 这点是什么意思?
{
if(*p<*q)
c[k]=*q;
else
c[k]=*p;
if(*p)
p++;
if(*q)
q++;
k++;
}
}
main()
{
char a[10]="aBCDeFgH",b[10]="ABcd",c[80]={'\0'};
fun(a,b,c);
printf("The string a:");
puts(a);
printf("The string b:");
puts(b);
printf("The result:");
puts(c);
}
[此贴子已经被作者于2006-2-27 0:13:05编辑过]
----------------解决方案--------------------------------------------------------
while(*p || *q) *p *q 至少有一个不是字符串结束标志
----------------解决方案--------------------------------------------------------
while(*p ||*q)
等价于
while(*p!='\0'||*q!='\0')
也等价于
while(*p!=0||*p!=0)
....还有很多表示方法,解释一下,因为while后面是一个逻辑表达式,while语句的值也就只有真假,真为1,假为0。又因为'\0'的ASIII码为0。
----------------解决方案--------------------------------------------------------
HOHO~
----------------解决方案--------------------------------------------------------