有人可以建議爲什麼主循環在第五次迭代後死亡永遠不會完成 它的目標是將字符數組減少到1個最終元素?這 到目前爲止,我已經得到了它,我完全消耗掉它們應該是11次迭代由呼叫亂七八糟C中的字符陣列
size_t strlen(char const *str)
{
int length = 0;
while (*str++ !='\0')
{
length += 1;
}
return length;
}
void abracadabra(char *word)
{
int i, c;
int len = strlen(word)-1;
for (i = 0; i <= len; i++)
{
putchar(*word);
putchar(' ');
*(word++);
}
}
int main()
{
char word[250];
int i, j;
printf ("enter your word:\n");
scanf ("%[^\n]s", &word);
for (i = 0; i <= strlen(word)-1; i++)
{
abracadabra(word);
putchar('\0');
printf("\n");
for (j = 0; j <= i; j++)
{
putchar('\0');
}
word[strlen(word) - 1] = '\0';
}
word[strlen(word)-1] = '\0';
printf("\n");
system("pause");
return 0;
}
除了接受的答案還有其他錯誤, strlen(word)'爲0時失效的幾個地方'strlen(word) - 1';和'putchar('\ 0')'是一個錯誤。 ''\ 0''是一個不可打印的字符,它在內部用於標記字符串的結尾,但不應該嘗試寫入流 – 2014-10-30 02:48:28