在 C 中使用 string.h 库时遇到一些问题

Having some trouble with string.h library in C

我有 运行 这个 C 代码,

char *bracket_by_len(char *output, char *word, int length)
{
    if(strlen(word) < 5) {
        output[0] = '<';
        output[1] = '<';

        /*int i = 2;
        while(i != (strlen(word) + 2)) {
            output[i] = word[i - 2];
            i += 1;
        }*/

        strncat(output, word, strlen(word));
        strcat(output, ">>");
return output;
} else {... not using them as 4 letter word for input}

int main()
{
    char word[40], output[40]; // word is not used.
    printf("%s \n.", bracket_by_len(output, "word", 20);
    return 0;
}

实际代码是这样的:Input code. 然后我写了

return output;

我用

打印了这个
printf("Based on size, \t %s.\n", output);

输出如下所示:

Based on size, <<^S>>.

开头有一些随机字符。当我用 while 循环替换 strncat() 函数并手动复制单词的字母时,输入没问题。

提前致谢。

output 没有以 NULL 结束。将其添加到左 V 形后。

output[0] = '<';
output[1] = '<';
output[2] = 0;
strncat(output, word, strlen(word));
printf("%s\n", output);

如果您改为使用 sprintf,您将不必担心添加 null 那个细节。

sprintf(output, "<<");
strncat(output, word, strlen(word));
printf("%s\n", output);