Turbo C ++的字符串问题

时间:2016-11-03 10:06:34

标签: c++ string turbo-c++

我需要在Turbo C ++中使用代码。但数据类型string不起作用; 使用命名空间std会产生编译器错误,如果没有它,我就无法使用string。即使std::string也不起作用。

它在Code :: Blocks中运行得非常好,但我希望它能在Turbo C ++中运行。我知道Turbo是一个非常古老的编译器,我应该使用新的编译器。但这是一个大学项目,必须在Turbo C ++中完成。有没有办法让它在Turbo C ++中运行?

6 个答案:

答案 0 :(得分:4)

这取决于您拥有的Turbo C ++版本。一些软件考古学:

3.1以下的古代DOS版本不能很好地支持STL,也不支持#include <string>。他们使用带有.h扩展程序的预标准包含格式:#include <string.h>等。尝试添加.h,您可能会很幸运。

在版本4或5.0左右,他们开始支持#include <string>标头格式和大多数STL。这些仍然是预标准编译器。

早期版本的Borland Builder中的STL支持仍然存在疑问,直到Builder 5的某个地方。这应该是BCC编译器的5.5左右。

在2005年左右发布的名为Turbo C ++的RAD工具应该完全支持C ++ 98。

答案 1 :(得分:2)

Turbo C ++不支持命名空间。

我认为你需要包含cstring.h而不使用任何名称空间甚至using指令。

#include <cstring.h>

我也不认为它支持模板。

答案 2 :(得分:1)

绝对没有办法让现代C ++代码在Turbo C ++中工作。很多都需要重写。

turbo c ++中没有std ::。没有名字。没有模板。我们所知道的标准库很少。基本上你必须忘掉大部分你对C ++的了解。类和函数大多数都可以工作。如果你#include <iostreams.h>(注意.h)并省略std::,Iostream可能会有所帮助。否则你几乎只限于C标准库。

如果你需要一个字符串类,你可能需要自己做。

仔细阅读,阅读内置帮助,检查所包含的示例程序,然后您就可以将其关闭。

请注意,该产品的更高版本(不称为Turbo C ++ IIRC,而是Borland C ++或Borland Builder)改进了对C ++ 98的支持,包括标准库。

答案 3 :(得分:0)

我遇到了同样的问题,然后我意识到我忘记了using namespace std,这解决了所有问题。

答案 4 :(得分:-1)

好的,经过很多麻烦,我找到了方法。遗憾的是,您无法使用string和其他类似的数据类型,因为当时甚至还没有实施。你需要做以前做过的事情。使用char数组而不是string并创建与之相关的函数。

现在char数组有很多限制和问题,这就是实现string的原因。但是你必须以char从头开始编写string数组函数。{ 如果要比较或复制两个char数组,则必须循环并比较它们。这会有点复杂,但这对我来说是最好的方式。

如果需要,我可以为某项任务提供一些示例代码。

答案 5 :(得分:-1)

您可以使用字符数组代替String。 例如,我们需要将变量str声明为字符串。它可以简单地完成:

char a[10]; // the 10 is the size of the array.

包含一个单独的头文件以使用库函数。