我的代码为“僵尸翻译”作为示例来自我的教授。从我可以告诉它需要一串英文单词,并通过函数应用一些规则。它目前使用strcpy
和strcat
来做到这一点,但即使我将它们更改为strcpy_s
,它也不会编译。而不包括其他功能(对于空间的缘故),这里是我的主要功能为例使用char *替代已弃用的strcpy/strcat *
int main()
{
char english[MAX];
char zombie[MAX];
char zombie_word[MAX];
int pos_e; /* Current position in english line of text */
int pos_z; /* Current position in line of translated zombie text */
while (1) {
pos_e = 0;
pos_z = 0;
strcpy(zombie, "");
cout << ("Enter English text: ");
cin >> english;
/* This loop translates the line from english to zombie. */
do
{
get_next_word(english, &pos_e, zombie, &pos_z);
translate_word(english, &pos_e, zombie_word, &pos_z);
strcat(zombie, zombie_word);
} while (pos_e < strlen(english));
print_translation(zombie);
}
return 0;
}
所以更具体,我应该怎么做才能行strcat(zombie, zombie_word);
使它在Visual Studio 2015年正确编译?
这不是一个等级,我真的很想在中期之前就能理解这一点,而且玩起来有点困难。我宁愿不必通过_CRT_SECURE_NO_WARNINGS来禁用它,以便我知道如果我需要做类似的事情该怎么做。
也许改变char变量为字符串或类似的东西?我一直在寻找一段时间,并找不到实际的过程。 非常感谢您的任何帮助,我非常感谢您的时间。
你可以分享什么问题与strcpy_s?对于C++来说更好的解决方案是std :: string,但是你可能需要知道如何在某个阶段使用strcpy_s。 –
在C++中,正确的答案几乎总是将'char *'转换为'std :: string',但当您用_s版本替换'strcat'和朋友时出于兴趣,出了什么问题?您是否阅读了[文档页面](https://msdn.microsoft.com/en-us/library/d45bbxx4.aspx)以了解两者之间的差异? – user4581301
我的错误似乎只存在于其他函数中,我得到消息strcpy_s错误:没有重载函数“strcpy_s”的实例匹配参数列表。 – lana