亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如下是字符串連接函數,我對while(*a)和while(*b)不是很明白,求解釋

如下是字符串連接函數,我對while(*a)和while(*b)不是很明白,求解釋

C
蕪湖不蕪 2022-12-21 17:13:08
#include <stdio.h>void strcat(char *,char *);main(){char s1[80];char s2[80];scanf("%s %s",s1,s2);printf("%s\t%s\n",s1,s2);strcat(s1,s2);printf("%s",s1);getch();}void strcat(char *a,char *b){while(*a)a++;while(*b)*a++=*b++;}我只知道是空串,NULL時跳出循環。。但是當我換成while(*a!=‘\0’)時就得不到正確結果了。。希望高手們可以給我解釋一下。
查看完整描述

2 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

你的這個函數有問題, 而不是while怎么判斷的問題

void strcat(char *a,char *b)
{

while(*a != '\0')
a++;
while(*b != '\0')
*a++=*b++;
*a = '\0'; //后面應該加上'\0',不然你的字符串怎么結束, 這里加了怎么while都沒有問題
}

查看完整回答
反對 回復 2022-12-25
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

while可以用作無窮循環,很多地方都用到無窮循環。一個無窮循環如下所示:
while(true)
{  
循環內容;  
...
}
無窮循環可以由自己循環中的某個條件式來結束。下面是一個循環內部終止的例子:
while(true) { 語句; if(條件式) break; // 跳離循環 ... }
當條件式成立時,會執行break離開while循環,這個break與switch中的作用是一樣的,都是要離開當時執行的程序塊時使用。

class 
TestWhile

public static void 
main(String[] args) 

{

while(true)



System.out.println( "執行 
"); 

//值為真用break跳出執行while之后的語句

if(true)



break; 

}

System.out.println( "繼續執行 "); 

}

}

}

//無窮循環固定格式為while(true),其中括號里的值固定為boolean型,并且要為真時,才會執行下面的語句.

class 
TestWhile

public static 
void main(String[] args) 

{

boolean flag = 
false;

while(flag)  
//這時括號里的值為假,所以下面的語句都不會執行.如果改成while(!flag)就可以執行了.



System.out.println( "while為真時執行 ");

//值為真用break跳出執行while之后的語句

if(true) 



break; 

}

System.out.println( "繼續執行 
"); 

}

}
}



查看完整回答
反對 回復 2022-12-25
  • 2 回答
  • 0 關注
  • 99 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號