当我运行它时,我没有错误,但字符串没有连接。有人能告诉我这里出了什么问题。
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';
然后程序崩溃。
答案 0 :(得分:1)
你必须以空字符串开头。
替换:
int l = strlen(str);
t[l] = '\0';
使用:
t[0] = '\0';
现在str
将n
t
l-1
连接t
。
原始代码将{{1}}中的第一个{{1}}字符保留为未初始化。