[英]Strcat issues when concatenating
嗨,出于某种原因,Strcat 不喜欢我的结构中的 value 属性。 我不知道为什么。 这是我的结构代码:
typedef struct TrieSearchTree{
char value;
struct DynamicList* children;
};
这是我的方法:
void PrintDynamicListContents(struct DynamicList* dynamicList, char* word)
{
struct dynamicListNode* currentRecord;
struct TrieSearchTree* trieSearchTree;
struct dynamicListNode* nextRecord = dynamicList->head;
while(nextRecord != NULL)
{
currentRecord = nextRecord;
nextRecord = currentRecord->next;
trieSearchTree = currentRecord->entity;
if (trieSearchTree != NULL)
{
if (trieSearchTree->value != WORD_END_CHAR)
{
char c[CHAR_LENGTH] = "";
strcat_s(c, CHAR_LENGTH, word);
strcat_s(c, CHAR_LENGTH, trieSearchTree->value);
PrintDynamicListContents(currentRecord, c);
}
else
{
printf("%s", word);
}
}
}
}
我一直试图让strcat
工作几个小时,即使阅读在线教程也无法让它工作。 所有帮助表示赞赏。
strcat_s
函数需要一个char *
,特别是一个指向空终止字符串的指针,作为第三个参数。 您传入的是单个char
。 你的编译器应该已经警告过你了。
该字符被解释为指针并被取消引用。 这会调用未定义的行为,在这种情况下,它表现为崩溃。
如果要将单个字符附加到字符串,则需要手动添加它和一个新的空终止符。
char c[CHAR_LENGTH] = "";
strcat_s(c, CHAR_LENGTH, word);
c[strlen(c) + 1] = '\0';
c[strlen(c)] = trieSearchTree->value;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.