菜鸟学C第12题:编写一个函数JOIN,让它实现字符串连接运算功能。
/*/*12. 编写一个函数JOIN,让它实现字符串连接运算功能
/*/
#include<stdio.h>
#include<stdlib.h>
char * join(char * str, const char * substr) {
char * p = str;
while (*p) { p++; }
while(*p++=*substr++){}
return str;
}
void main() {
char str1 = "123";
char substr = "456";
printf("%s", join(str1, substr));
getchar();
} 建议已优雅与易读为目标而非为了短小而精简。
万一遇到奇怪的毛病非常不方便调试。 jixun66 发表于 2017-11-19 23:32
建议已优雅与易读为目标而非为了短小而精简。
万一遇到奇怪的毛病非常不方便调试。
好的,兄弟 谢谢分享。。。。。。。。 这个是字符串连接,直接用sprintf不就可以了吗? wang65424773 发表于 2017-11-20 06:43
这个是字符串连接,直接用sprintf不就可以了吗?
要自己实现,成为变成高手 join函数对传入参数进行了修改,这种编程思想是有害的,因为如果一个函数有返回值,且一个返回值已经足够的情况下,一般默认认为函数不会对传入参数进行修改。更不必说返回值跟修改后的传入参数完全一致,这是没有必要的事情。
而且这种实现要求第一个字符串留有足够的空白位置,否则就会数组越界。
最好的实现方法仍然是将两个字符串复制到新的内存空间中,而不是企图取巧省下一点代码和内存。 keeeeymann 发表于 2017-11-20 11:00
join函数对传入参数进行了修改,这种编程思想是有害的,因为如果一个函数有返回值,且一个返回值已经足够的 ...
你说得非常有道理,朋友
页:
[1]