两语句功能相同,为何结果不相同?
/*下面代码加“//”的两个语句,如果scanf输入空格,按道理和“c = '\0'”的功能是一样的,为何输出的结果却不同?
运行后输入“a b c d”,希望得到“abcd”
请问大神,这问题出在哪?谢谢!!
*/
#include <stdio.h>
int main(void)
{
void enter_string(char str[]);
void delete_string(char str[], char ch);
void printf_string(char str[]);
char c, str[80];
enter_string(str);
// scanf("%c", &c);
// c = '\0';
delete_string(str, c);
printf_string(str);
return 0;
}
void enter_string(char str[80])
{
gets(str);
}
void delete_string(char str[], char ch)
{
int i, j;
for(i=j=0; str[i]!='\0'; i++)
if(str[i]!=ch)
str[j++] = str[i];
str[j] = '\0';
}
void printf_string(char str[])
{
printf("%s\n", str);
}