C语言中字符数组中不需要的随机符号

C语言中字符数组中不需要的随机符号,c,C,我试图通过使用strcat()来创建一个字符串数组,但是它总是给我不需要的字符,例如:char-arr[50]strcat(arr,“test”)当我放置(arr)或printf(“%s\n”,arr)时,它总是给我@*测试而不仅仅是测试,有人知道是什么导致了我的问题吗 谢谢 必须在使用数组的值之前初始化数组,否则调用未定义的行为 试试这个: #include <stdio.h> #include <string.h> int main(void) { char

我试图通过使用
strcat()
来创建一个字符串数组,但是它总是给我不需要的字符,例如:
char-arr[50]
strcat(arr,“test”)
当我
放置(arr)
printf(“%s\n”,arr)
时,它总是给我
@*测试
而不仅仅是测试,有人知道是什么导致了我的问题吗


谢谢

必须在使用数组的值之前初始化数组,否则调用未定义的行为

试试这个:

#include <stdio.h>
#include <string.h>

int main(void) {
    char arr[50] = {0}; /* add = {0} */
    strcat(arr, "test");
    puts(arr);
    return 0;
}
#包括
#包括
内部主(空){
char arr[50]={0};/*add={0}*/
strcat(arr,“测试”);
puts(arr);
返回0;
}

OP没有遵循的建议。对于字符数组,可以使用
char arr[50]=”