strncpy复制指定大小的字符串
不管是面试还是日常使用,这个都是经常需要用到的。所以写一个以后自己用。
#include <stdio.h> char *MyStrcpy_n(char *dst[], char *src[], unsigned int CopyNum); int main(int argc, char *argv[]) { char mystring[6] = ""; char srcstring[] = "This is test string!"; MyStrcpy_n(mystring, srcstring, sizeof(mystring)); printf("%s\n", mystring); return 0; } /* MyStrcpy_n(mystring, srcstring, sizeof(mystring)); */ char *MyStrcpy_n(char *dst, const char *src, unsigned int CopyNum) { int i; for(i = 0; i < CopyNum; i++) { dst[i] = src[i]; } dst[i] = '\0'; }
运行结果:
This i Press any key to continue . . .
反汇编结果:

再转一段书上的代码:
void copy_n(char dst[], char src[], int n) { int dst_index , src_index; src_index = 0; for(dst_index = 0; dst_index < n; dst_index += 1) dst[dst_index] = src[src_index]; if(src[src_index] != 0) src_index++; }
这段代码我在c-free 5.0上运行好像有问题。回头再看看。。
2012-9-10

浙公网安备 33010602011771号