C++ Strcat函数的实现
我有一个关于C++ Strcat函数的实现,c++,c,visual-studio,function,C++,C,Visual Studio,Function,我有一个关于strcat()函数实现的编程问题。 我一直在试图解决这个问题,但我遇到了一些访问冲突错误 我创建的函数: char str_cat(char str1, char str2) { return str1-'\0'+str2; } 上面的代码有什么错误 请再问一个问题, “iostream”是头文件吗?在哪里可以买到 谢谢以上代码中没有任何内容是正确的 您需要获取char*参数 如果必须返回某些内容(不需要),则需要返回char* 您需要在复制单个字符的字符串上循环-使用
strcat()
函数实现的编程问题。
我一直在试图解决这个问题,但我遇到了一些访问冲突错误
我创建的函数:
char str_cat(char str1, char str2)
{
return str1-'\0'+str2;
}
上面的代码有什么错误
请再问一个问题,
“iostream”是头文件吗?在哪里可以买到
谢谢以上代码中没有任何内容是正确的
- 您需要获取
参数char*
- 如果必须返回某些内容(不需要),则需要返回
char*
- 您需要在复制单个字符的字符串上循环-使用
和+
-
- 您需要0-终止结果
void strcat(char * Dest, char const * Src) {
char * d = Dest;
while (*d++);
char const * s = Src;
while (*s) { *d++ = *s++; }
*d = 0;
}
你为什么要这么做?在标准库中有一个非常好的strcat
,还有一个非常好的std::string
,您可以在其上使用+
。不幸的是,这个函数的一切都是错误的,甚至返回类型和参数类型也是如此。应该是这样的
char * strcat(const char *str1, const char *str2)
它应该通过使用malloc(对于C)或new(对于C++)分配一个足够大的新内存块来保存连接的字符串,然后将两个字符串复制到其中。不过,我认为你的(家庭)工作很适合你,因为我认为你不太清楚这意味着什么。我不想听起来很消极,但这段代码没有多少正确之处 首先,C中的字符串是char*,而不是char 其次,没有办法像你希望的那样“加”或“减”它们(这在某种程度上是可能的,比如说python)
IoStand是C++的标准I/O头,应该与您的分布捆绑在一起。
<>我想<强> > >强>建议一个指针来引导你前进——我只是通过Google“ANSI C指针”来发现的。我猜问题是要求你有一个C回答而不是C++,因为在C++中你会使用STD::String和重载操作符+./P>请选择一个<代码> C<代码>或<代码> C++ > /Cord>。在
C
中,答案将涉及指针,在C++
中,我认为,它将涉及std::string
。人们仍然在向他扔答案(代码)!这显然是作业,你为什么这么想为他做呢?@Ernest:考虑到他的问题的程度,他将无法解释while循环,并且将不得不重新执行它,以便他的老师不会在抄袭方面抓到他。