編寫一個函數,它從一個字符串中提取一個子字符串。函數原型如下: int substr(char dst[], char src[],int start, int len) {} 目標是:從 src 數組起始位置向後偏移 start個字符的位置開始,最多復制 len 個非NUL字符到 dst數組。在復制完畢之後,dst 數組必須以NUL字節結尾。 函數的返回值是存儲於 dst 數組中的字符串的長度。 代碼實現: #include <stdio.h> #include <assert.h> int substr(char dst[], char src[], int start, int len) { assert(dst); assert(src); int ret = 0; while (start) { src++; start--; } if (strlen(src) < len) { len = strlen(src); } ret = len; while (len) { *dst++ = *src++; len--; } *dst = '\0'; return ret; } int main() { char *p = "bit-tech"; char arr[10]; char array[10] = {0}; int ret = substr(arr, p, 4,5); printf("%d\n", ret); printf("%s\n", arr); system("pause"); return 0; }