很多字符串函数都返回一个指针,但是返回一个指向目的地的指针并返回目的地的优点是什么?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *sstrcpy ( char *destination, const char *source ){ //return a pointer to destination
while ((*destination++ = *source++));
*destination='\0';
return destination;
}
char sstrcpy2 ( char *destination, const char *source ){ //return destination
while ((*destination++ = *source++));
*destination='\0';
return *destination;
}
int main(void){
char source[] = "Well done is better than well said";
char destination[40];
sstrcpy ( destination, source );
printf ( "%s\n", destination);
return 0;
}
这个想法是提供链接功能的可能性。即,将一个函数结果作为参数传递给另一个函数。
sstrcpy ( destination2, sstrcpy ( destination1, source ));
至于建议sstrcpy2
- 它只会返回复制字符串的最后一个字符,这显然\0
在您的实现中,在大多数情况下是无用的。
更新:
请注意,该实现sstrcpy
按原样不正确,它将返回 的值destination
,该值已移至字符串的末尾,而不是指向字符串开头的指针。或者,我建议保存原始指针并增加它的副本:
char *sstrcpy ( char *destination, const char *source ){ //return a pointer to destination
char *dst = destination;
while ((*dst++ = *source++));
*dst='\0';
return destination;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句