0

当我运行它时,我没有收到任何错误,但字符串没有连接起来。有人可以告诉我我在这里做错了什么。

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';

然后程序崩溃。

4

1 回答 1

1

你必须从一个空字符串开始。

代替:

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

和:

t[0] = '\0';

现在strnt.

原始代码未初始化第一个l-1字符。t

于 2013-03-16T18:23:19.590 回答