连接cstrings c ++

时间:2013-03-16 18:18:05

标签: c++ concatenation cstring

当我运行它时,我没有错误,但字符串没有连接。有人能告诉我这里出了什么问题。

char *con(const char str[], int n) {
    char * t = new char[60];
    int l = strlen(str);
    t[l] = '\0';
    if (n <= 0) {
        return t;
    } else {
        for (int i = 0; i < n; i++) {
            strcat(t, str);
        }
        return t;
    }
}

如果我尝试取出:

int l = strlen(str);
t[l] = '\0';

然后程序崩溃。

1 个答案:

答案 0 :(得分:1)

你必须以空字符串开头。

替换:

int l = strlen(str);
t[l] = '\0';

使用:

t[0] = '\0';

现在strn t l-1连接t

原始代码将{{1}}中的第一个{{1}}字符保留为未初始化。