最近我接受了采访,并要求编写mystrcat(*s1, *s2, *s3)
其中s1
和s2
是源字符串,连接结果由s3
给出。我被告知,不要担心内存分配s3
,并假设s1
和s2
不是空值/无效字符串。所以我写了下面的蹩脚的(粗糙的)程序。我被告知s3
有什么问题,或者s3
可能出问题。你能告诉我这是/可能吗?我的连接函数mystrcat(char *,char *,char *)有什么问题?
void mystrcat(char *s1, char *s2, char *s3)
{
if (! (s1 || s2 || s3)) return; // one/more pointers are invalid
// copy string s1 into s3
while(*s1) {
*s3 = *s1;
s1++;
s3++;
}
// concatenate string s2 into s3
while(*s2) {
*s3 = *s2;
s2++;
s3++;
}
*s3 = '\0';
}
你能告诉我这里有什么问题吗?更专业的做法是什么?
我缺少结束paranthesis第一if语句,但我认为这只是一个现在发生的错字...? – 2009-05-21 22:03:57
这是错字。更正..thnx – curiousone 2009-05-21 22:06:48