小编Kar*_*lar的帖子

"C语言中的strcat函数混淆假设目标字符串足够大,可以保存源字符串及其自身的内容."

所以我读到该strcat函数将被仔细使用,因为目标字符串应该足够大以容纳其自己和源字符串的内容.我写的以下程序也是如此:

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

int main(){
    char *src, *dest;
    printf("Enter Source String : ");
    fgets(src, 10, stdin);
    printf("Enter destination String : ");
    fgets(dest, 20, stdin);
    strcat(dest, src);
    printf("Concatenated string is %s", dest);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但对于我在这里写的那个不是这样的:

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

int main(){
    char src[11] = "Hello ABC";
    char dest[15] = "Hello DEFGIJK";
    strcat(dest, src);
    printf("concatenated string %s", dest);
    getchar();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

该程序最终添加两者而不考虑目标字符串不够大.为什么会这样?

c string strcat

2
推荐指数
2
解决办法
555
查看次数

标签 统计

c ×1

strcat ×1

string ×1