当前位置:  开发笔记 > 编程语言 > 正文

连接时出现Strcat问题

如何解决《连接时出现Strcat问题》经验,为你挑选了1个好方法。

嗨,由于某种原因,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);
            }
        }
    }
}

这是错误消息:

证明结构中的值返回某些内容('l'字符)

我一直在努力strcat工作几个小时,即使阅读在线教程也无法让它工作.所有帮助赞赏.



1> dbush..:

strcat_s函数期望a char *,特别是指向空终止字符串的指针,作为第三个参数.你传递了一个char.您的编译器应该已经警告过您.

该字符被解释为指针并被解除引用.这会调用未定义的行为,在这种情况下会出现崩溃.

如果要将单个字符附加到字符串,则需要手动添加它和新的null终止符.

char c[CHAR_LENGTH] = "";
strcat_s(c, CHAR_LENGTH, word);
c[strlen(c) + 1] = '\0';
c[strlen(c)] = trieSearchTree->value;

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有