Turbo C++的字符串问题

String problems with Turbo C++

本文关键字:问题 字符串 C++ Turbo      更新时间:2023-10-16

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

它在Code::Blocks中运行得非常好,但我希望它能在Turbo C++中运行。我知道Turbo是一个非常旧的编译器,我应该使用新的。但这是一个必须用Turbo C++完成的大学项目。有什么方法可以让它在Turbo C++中工作吗?

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

3.1以前的DOS版本不支持STL,也不支持#include <string>。他们使用了带有.h扩展名的预标准include格式:#include <string.h>等。尝试添加一个.h,你可能会很幸运。

在版本4或5.0前后,他们开始支持#include <string>头格式和大部分STL。这些仍然是标准前的编译器。

STL支持在早期版本的BorlandBuilder中仍然存在问题,直到Builder5左右。这应该是BCC编译器的5.5版本左右。

RAD工具Turbo C++于2005年左右发布,应该完全支持C++98。

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

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

#include <cstring.h>

我认为它也不支持模板。

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

turbo c++中没有std::。没有名字。没有模板。我们所知道的标准库很少。基本上,你必须忘记你所知道的关于C++的大部分内容。类和函数主要起作用。如果#include <iostreams.h>(注意.h(并省略std::,Iostreams可能会在一定程度上起作用。否则,您几乎只能使用C标准库。

如果你需要一个字符串类,你可能必须自己制作。

仔细阅读内置的帮助,检查包含的示例程序,你可能会成功

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

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

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

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

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

好吧,经过一番折腾,我找到了办法。不幸的是,您不能使用string和其他这样的数据类型,因为它们在当时甚至还没有实现。你需要做以前常做的事。使用char数组而不是string,并创建与之相关的函数

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

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