当前位置: 代码迷 >> C语言 >> 编程的理解,一点小问题
  详细解决方案

编程的理解,一点小问题

热度:190   发布时间:2006-02-27 00:11:00.0
编程的理解,一点小问题

函数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~
----------------解决方案--------------------------------------------------------
  相关解决方案