#include <stdio.h>char *f (char s[],char t[],char out[]);int main(voID){ char s[] = "ISBN-978-8884981431"; char t[] = "ISBN-978-8863720181"; char out[10]; printf ("%s\n",f(s,t,out)); return 0;}char *f (char s[],char out[]) { int i; for (i=0; s[i] == t[i]; i++) out[i] = s[i];out[i] = 'char *f (char s[],char out[]) { for (; *(s+=1) == *(t+=1);) *(out+=1) = *s; *(out+1) = '';return &out[0];}char *orig = out;for ( ; *s == *t ; s++,t++) *out++ = *s;*out = '';return orig;'; return out;}
从代码中可以看出,此代码用作返回值& out [0]:这是否意味着完整数组用作返回值?
这是我提出的解决方案,但是当建议的代码返回“ISBN-978-88”时,我的只返回“8”.
数组小于字符串的长度,建议的代码如何在没有任何溢出的情况下工作?
谢谢你的回复.
此外,您需要在递增指针之前保存out缓冲区的值,以便您可以返回指向复制字符串开头的指针.
Demo on ideone.
总结以上是内存溢出为你收集整理的c – 使用指针数学而不是数组索引全部内容,希望文章能够帮你解决c – 使用指针数学而不是数组索引所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)