#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int test()
{
printf(" I'm in %s \n", __FUNCTION__);
char *str="123";
char buf[16]={
0,
};
int i=0;
int len=strlen(str);
printf("len:= %d \n", len);
do{
printf("in looping i:= %d \n", i);
printf(" be copy %c\n ", *str);
buf[i++]=*str++;
}while(len-- >0);
//是大于,而不是大于等于
//}while(len-- >=0);
printf(" my copy str:= %s \n\n", buf);
return 0;
}
int test2()
{
printf(" I'm in %s \n", __FUNCTION__);
char *str="123";
char buf[16]={
0,
};
int i=0;
int len=strlen(str);
printf("len:= %d \n", len);
while(len-- >= 0){
printf("in looping i:= %d \n", i);
printf(" be copy %c\n ", *str);
buf[i++]=*str++;
};
printf(" my copy str:= %s \n\n", buf);
return 0;
}
int main(int argc, char *argv[])
{
test();
test2();
return 0;
}
while do是严格按照判断执行,do while先执行后判断,所以在while不成立时仍然会执行一次。