这种写法很恶心
str[j++]=str[i];
相当于
str[j] = str[i];
然后
j = j + 1;
这两步
str[i]!='\0'
这句
如果是str[i] == '\0';
就表示这个字符是字符串的末尾了
'\0'是字符串尾部标志
str[i]!='\0'
一般作为while语句的条件判断语句
表示下面语句块{}
循环结束的标志
int i,j;
定义i,j为整型数据,在for 循环i=j=0里面设置其初始值为0;
str[i]!='\0' 如果没有到字符串结尾
下面if再判读str的第i个字符是否等于ch,
如果不等于就把str的第i个字符赋值给str的第j++ 个字符否则就把str的第0个字符赋值为'\0'即字符结尾。
作用:发现字符串中如果含有指定字符就从截断
enter_string("abc",'a')
结果就是abc字符串就成了空白了。
enter_string("abc",'b')
结果就是abc字符串就成了a。
字符串str和字符ch都是函数的接收参数,i、j是计数器初始为0,循环条件是str数组不结束('\0'是字符串的结束标志),每循环一次i递增1,也就是看字符串的下一个字符,当它不是ch的时候,就进行赋值。我认为这当中srt和srr打错了,或者有语句缺漏,任何变量都是不能不声明就使用的。
str[i]!='\0'是判断句 表示如果i的值不等于字符\0,那么i++.
str[j++]=str[i]; 代表把i的值赋给str[j+1]
用循环去掉str中所有为ch的字符,程序中有点错,不是srt[i]!=ch,而是str[i]!=ch