Có cao thủ nào giải thích hộ mình với, hàm sau đúng với vòng lặp do…while nhưng sai với while
#include <stdlib.h>
long dodaichuoi(const char* chuoi);
int main()
{
char chuoi[]="xinchao";
printf("Chuoi %s dai %ld ky tu\n",chuoi,dodaichuoi(chuoi));
return 0;
}
long dodaichuoi(const char* chuoi)
{
char kytuhientai=0;
long soluongkytu=0;
while(kytuhientai!='\0')
{
kytuhientai=chuoi[soluongkytu];
soluongkytu++;
}
soluongkytu--;
return soluongkytu;
}
soluongkytu =-1
trong khi với hàm do…while soluongkytu=7(đúng)
#include <stdlib.h>
long dodaichuoi(const char* chuoi);
int main()
{
char chuoi[]="xinchao";
printf("Chuoi %s dai %ld ky tu\n",chuoi,dodaichuoi(chuoi));
return 0;
}
long dodaichuoi(const char* chuoi)
{
char kytuhientai=0;
long soluongkytu=0;
do
{
kytuhientai=chuoi[soluongkytu];
soluongkytu++;
}
while(kytuhientai!='\0');
soluongkytu--;
return soluongkytu;
}
không hiểu vì sao lại thế ?