は、それが*str
が上停止すべきときと言及されていないことを意味我々はwhile(*str)
は無条件に開始されていることがわかります、私はwhile
ループの開始時にループ条件なし
#include <stdio.h>
void sp_to_dash(const char *str);
int main(void)
{
sp_to_dash("this is a test");
return 0;
}
void sp_to_dash(const char *str)
{
while(*str) //beginning of while loop
{
if(*str== ' ')printf("%c", '-');
else printf("%c", *str);
str++;
}
}
に遭遇したプログラムは、ですがnull
または'\0'
。コードは正常に動作していますが、私によるとwhile(*str != null)
またはwhile(*str != '\0')
のようになります。これを私に説明してください。
コードが 'while(* str!= null){...} 'であるとすれば、空文字列、ヌルポインタと' NUL' ASCII文字の '\ (そして、NULLポインタが「NULL」ではなく「NULL」であるBTW)。 Cの初心者の間では多少共通の病気ですが、できるだけ早く修正するべきです。 – 6502