以下是引用wangchengbin在2012-8-11 08:50:02的发言:
程序设计题:
不使用任何库,编写一个函数 char* remove(const char*src,char c)
参数src为输入的字符串,长度不确定,不为空。
参数c为任何可能的字符
返回值。src中删除了所有字符c的字符串。对是否通过动态分配内存的方式返回这个字符串还是使用静态的内存不做限制。
请大家帮忙分析下,可能我是一个初学者,能力确实有限,无从下手。。。 谢谢!
根据题目给出的函数原型,src为const字符串,意味着不允许在源串上进行修改,而函数要用静态内存返回是必须在调用点分配字符串空间的,该函数原型不提供这样的参数形式(它只要编写函数,不要你写调用处代码),所以,你必须把代码设计为用动态分配内存的方式返回修改后的字符串——使用后记得释放!
使用非const指针修改源串src是违反函数原型设计原则的,如果真要那样做,最好先改掉原型,不用强硬去改。在多人合作的时候,这样违反原型规定擅自改动,只能给调用处的程序员带来麻烦,因为他们绝对想不到你居然敢这样改,那样会打乱整盘计划的。试想一下,如果src指针所指向的是一个ROM地址空间,这样自以为是地去改动源数据会有什么后果。
[
本帖最后由 TonyDeng 于 2012-8-12 20:48 编辑 ]