我正在练习使用链表,并尝试在字符串标题中创建自己的strlen函数。首先,我像这样制作了自己的标题。
myHeader.h
typedef struct _str {
char c;
struct _str *l;
}
typedef cp2014str *cp2014strPtr;
size_t cp2014strlen(const cp2014str * str);
size_t cp2014strlen(const cp2014str * str) {
size_t i;
cp2014strPtr strptr;
strptr = str;
for(i = 0; strptr != NULL; i++) {
strptr = strptr -> l;
}
return i - 1;
}
我用这段代码测试了自己
#include <string.h>
#include "myHeader.h"
int main() {
int i, j;
i = strlen("Happy");
j = cp2014strlen("Happy");
printf("%d %d\n", i, j);
return 0;
}
但是我编译运行后,即使没有编译错误,在运行程序的过程中也会发生分段错误。我不知道为什么这是错误的。
最佳答案
"Happy"
是字符串,而不是链接列表。要使用您的功能,您需要创建一个链接列表,并以每个字母作为列表中的节点。
关于c - 通过接收字符串作为链接列表来制作自己的strlen函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27211088/