字符串复制中的while条件
生活随笔
收集整理的這篇文章主要介紹了
字符串复制中的while条件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
void strCpy(char *s1,char *s2)
{while(*s1++=*s2++);
}
我開始對while循環里面的那個結束條件有些迷惑,最后通過程序調試找到了答案。此函數的目的將s2指向的字符串復制到s1中,此結束條件是s2指向的字符串全部被復制完了,while就結束了(前提是s1指向的空間能夠容納s2指向的字符),而不是遇到'\0'結束,這里面是一個賦值語句,'\0'也被賦值過去了,所以最后也不需要補充'\0'了。
#include<iostream> using namespace std;void strCpy(char *s1,char *s2) {while(*s1++=*s2++){printf("%d\n",*s2);} }int main() {char s1[20]="haha";char s2[20]="hehe";strCpy(s1,s2);cout<<s1<<endl;return 0; }打印:97? ? ? ? ? ? 104
? ? ? ? ? ? ?97
? ? ? ? ? ? ?0
? ? ? ? ? ? ?haha
'\0'用%d打印出來是0,則'\0'也被復制了。類似while(str[i])當str[i]='\0'時,對應int是0,while循環也就結束了。
總結
以上是生活随笔為你收集整理的字符串复制中的while条件的全部內容,希望文章能夠幫你解決所遇到的問題。