C语言书上一个例题的疑问(外部函数应用范例)

全部回答6
默认 最新
  • 我现在用的一本 21世纪高职高专规划教材《c语言程序设计学习指导与习题汇编》 崔成主编 中国水利水电出版社 每章只有简单的只是总结 其他的全是例题学习 和 习题练习
    0 点赞
  • if(str[i]!=ch) 删除字符chstr[j++] = str[i]; str[j] = "\0"; 当str[i]==ch时;就不执行str[j++] = str[i]; str[j] = "\0";]跳到 for(i=j=0; str[i]!="\0"; i++) str字符串ch输入字符
    0 点赞
  • for(i=j=0; str[i]!="\0"; i++)if(str[i]!=ch)str[j++] = str[i]; 是把i中不等于ch都字符拷到j中,,,,不需要再考虑if(str[i]==ch)了吧
    0 点赞
  • 文件3中只是把ch除外的其他字符复制到本str数组中,注意i和j的增加条件不同,j只有在不是ch时才增加,始终在增加。这样恰好能把ch从str中删掉。
    0 点赞
  • 注意file3.c中这一行 str[j++] = str[i];先赋值后j才自加的开始时没在str中扫描到ch字符时,i,j指向的是同一个字符,当扫描到ch字符时,i增1,j的值没有变,那么在下次执行str[j++] = str[i]时,就对ch字符进行了覆盖,在str[j] = "\0";后最终的效果就相当于删除了str中的ch字符enter_string函数的参数是数组,是引用传递,主程序调用它是传递的是地址,他们操作的是同一个str ch当然可以在main函数中阿 main通过值传递把ch传给delete函数 反正这些函数操作的都是同一个str 建议你好好看看书上函数参数传递这部分
    0 点赞
  • if(str[i] != ch)...是对的因为下面是str[j++] = str[i];就是把不是ch的字符复制到前面。这样前面的字符就被覆盖了。以字符串str 为 "abc",ch为'b'为例i = 0; j= 0str[i] != 'b' -> str[0] = str[0] -> str = "abc"i = 1; j = 1(因为条件成立,执行了j++)str[i] == 'b' -> str不变,j不变i = 2; j = 1str[i] != 'b' -> str[1] = str[2] -> str = "acc"循环结束,j=2str[j] = '\0' str = "ac"删除成功。至于输入放在什么函数里不会影响输入的执行,在一个外部函数中调用输入函数是完全可以,而且也不少见。所以str的输入在enter_string里,ch的输入放在main里面没有任何问题。
    0 点赞

没有更多内容了

返回顶部
产品求购 求购