小编G.l*_*rto的帖子

用strncat连接两个字符串

我想连接两个字符串,添加一个新的随机字符,使用strncat()所以基本上我这样做:

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

#define CHARACTER_RANGE 25
#define INITIAL_CHARACTER 65

int main(){
    char male[32] = "A", female[32] = "B", new_letter[1], new_name[32];
    srand(time(NULL));

    strcpy(new_name, male);
    strncat(new_name, female, sizeof(new_name) - strlen(new_name) - 1);

    new_letter[0]= (rand() % CHARACTER_RANGE) + INITIAL_CHARACTER;

    strncat(new_name, new_letter, sizeof(new_name) - strlen(new_name) - 1);

    printf("New string is %s!\n", new_name);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果新信是F,预期结果应该是:

New string is ABF!
Run Code Online (Sandbox Code Playgroud)

相反,结果是:

New string is ABFAB!
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么会这样.

c string string-concatenation

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

标签 统计

c ×1

string ×1

string-concatenation ×1