| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 569 人关注过本帖
标题:求教,指针数组的一道题目
只看楼主 加入收藏
赵凯
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-3-28
结帖率:0
收藏
已结贴  问题点数:10 回复次数:4 
求教,指针数组的一道题目
用字符指针实现函数strcat(s,t),将字符串t复制到字符串s的末端,并且返回字符串s的首地址,
搜索更多相关主题的帖子: 指针 
2010-03-29 19:48
qgl
Rank: 1
等 级:新手上路
帖 子:5
专家分:7
注 册:2010-3-23
收藏
得分:2 
不会。。。。。。。。。。。。
2010-03-29 20:51
jd205
Rank: 2
等 级:论坛游民
帖 子:139
专家分:69
注 册:2006-10-26
收藏
得分:2 
程序代码:
char *sss(char *s1, char *s2)
{

 while(*s1)

 {
    s1 ++;

 }

 while(*s1 ++ = *s2 ++);


 return s1;   
}

STRCAT()貌似是这样写的··不过,前面还得加个ASSERT();
2010-03-29 21:37
hzh512
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
收藏
得分:2 
VC源码:
char * __cdecl strcat (char * dst, const char * src)
{
char * cp = dst;
while( *cp )
cp++; /* find end of dst */
while( *cp++ = *src++ ) ; /* Copy src to end of dst */
return( dst ); /* return dst */
}

linux 下 glibc 2.9下

/* Append SRC onto DEST.  */
#define _HAVE_STRING_ARCH_strcat 1
#define strcat(dest, src) \
  (__extension__ (__builtin_constant_p (src)                      \
          ? __strcat_c ((dest), (src), strlen (src) + 1)          \
          : __strcat_g ((dest), (src))))

__STRING_INLINE char *__strcat_c (char *__dest, __const char __src[],
                  size_t __srclen);

__STRING_INLINE char *
__strcat_c (char *__dest, __const char __src[], size_t __srclen)
{
#ifdef __i686__
  register unsigned long int __d0;
  register char *__tmp;
  __asm__ __volatile__           ////内联汇编
    ("repne; scasb"
     : "=D" (__tmp), "=&c" (__d0),
       "=m" ( *(struct { char __x[0xfffffff]; } *)__dest)
     : "0" (__dest), "1" (0xffffffff), "a" (0),
       "m" ( *(struct { __extension__ char __x[__srclen]; } *)__src)
     : "cc");
  --__tmp;
#else
  register char *__tmp = __dest - 1;
  __asm__ __volatile__
    ("1:\n\t"
     "incl    %0\n\t"
     "cmpb    $0,(%0)\n\t"
     "jne    1b\n"
     : "=r" (__tmp),
       "=m" ( *(struct { char __x[0xfffffff]; } *)__dest)
     : "0" (__tmp),
       "m" ( *(struct { __extension__ char __x[__srclen]; } *)__src)
     : "cc");
#endif
  (void) memcpy (__tmp, __src, __srclen);
  return __dest;
}

__STRING_INLINE char *__strcat_g (char *__dest, __const char *__src);

__STRING_INLINE char *
__strcat_g (char *__dest, __const char *__src)
{
  register char *__tmp = __dest - 1;
  register char __dummy;
  __asm__ __volatile__         
    ("1:\n\t"
     "incl    %1\n\t"
     "cmpb    $0,(%1)\n\t"
     "jne    1b\n"
     "2:\n\t"
     "movb    (%2),%b0\n\t"
     "incl    %2\n\t"
     "movb    %b0,(%1)\n\t"
     "incl    %1\n\t"
     "testb    %b0,%b0\n\t"
     "jne    2b\n"
     : "=&q" (__dummy), "=&r" (__tmp), "=&r" (__src),
       "=m" ( *(struct { char __x[0xfffffff]; } *)__dest)
     : "1"  (__tmp), "2"  (__src),
       "m" ( *(struct { char __x[0xfffffff]; } *)__src)
     : "memory", "cc");
  return __dest;
}

编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段
2010-03-29 21:56
仙剑☆幻影
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2010-3-29
收藏
得分:2 
呃,好复杂。。。
2010-03-29 22:03
快速回复:求教,指针数组的一道题目
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025640 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved