2017证券公司排名:帮我解释一下C程序问题?

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/12 04:04:56
有一个子程序;
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';
}
这个子程序的作用是
删除在str字符串中的ch字符?比如ctr字符串是asdfgjkf,ch是S的情况下运行后旧变成adfgjkf?
我不理解str[j]='\0'的作用是怎么样的??????

FOR循环是只从 ctr 的第一个字符开始进行检查,以便找到与 ch 内容一致的字符段
str[j]='\0'是找到了与 ch 一致的字符时且一直到 ch
的最后
\0是指字符存储的最末尾标示

\n是字符串结束符,每个字符串末尾都是这个符号,遇到\n就是说明字符串的末尾。

数据栈里的字符串结尾都是以\0结尾,这个FOR就是检测一但遇到字符结尾就完成提字操作并到新的字符串后加\0