Turbo C++ 的字符串问题
String problems with Turbo C++
我需要在 Turbo C++ 中运行代码。但是数据类型string
不起作用;
使用命名空间 std
会产生编译器错误,没有它我无法使用 string
。即使 std::string
也不行。
它在 Code::Blocks 中工作得很好,但我希望它在 Turbo C++ 中工作。我知道 Turbo 是一个非常古老的编译器,我应该使用新的。但这是一个必须在 Turbo C++ 中完成的大学项目。有什么方法可以让它在 Turbo C++ 中工作吗?
这取决于您拥有的 Turbo C++ 版本。一些软件考古:
3.1 之前的古代 DOS 版本不能很好地支持 STL,也不支持 #include <string>
。他们使用 pre-standard 包含扩展名为 .h 的格式:#include <string.h>
等。尝试添加 .h
,你可能会很幸运。
大约在版本 4 或 5.0 左右,他们开始支持 #include <string>
header 格式和大部分 STL。这些仍然是 pre-standard 编译器。
STL 支持在早期版本的 Borland Builder 中仍然存在问题,直到 Builder 5 左右。那应该是 BCC 编译器的 5.5 左右版本。
名为 Turbo C++ 的 RAD 工具于 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 标准库。
如果您需要一个字符串 class,您可能必须自己制作一个。
仔细阅读,阅读内置帮助,检查包含的示例程序,您可能会成功。
请注意,该产品的更高版本(不称为 Turbo C++ IIRC,而是 Borland C++ 或 Borland Builder)改进了对 C++98 的支持,包括标准库。
好吧,千辛万苦找到方法了。不幸的是,您不能使用 string
和其他此类数据类型,因为它们当时甚至都没有实现。你需要做以前做过的事情。使用 char
数组而不是 string
并创建与之相关的函数。
现在 char
数组有很多限制和问题,这就是实施 string
的原因。但是你必须像从头开始编写 string
一样编写 char
数组函数。
如果要比较或复制两个 char 数组,则必须循环比较它们。它会有点复杂,但这是对我最有效的方法。
如果需要,我可以为特定任务提供一些示例代码。
您可以使用字符数组代替字符串。
例如,我们需要将变量 str 声明为字符串。可以简单地完成:
char a[10]; // the 10 is the size of the array.
包含一个单独的头文件以使用库函数。
我遇到了同样的问题然后我意识到我忘记了using namespace std
那解决了一切。
我需要在 Turbo C++ 中运行代码。但是数据类型string
不起作用;
使用命名空间 std
会产生编译器错误,没有它我无法使用 string
。即使 std::string
也不行。
它在 Code::Blocks 中工作得很好,但我希望它在 Turbo C++ 中工作。我知道 Turbo 是一个非常古老的编译器,我应该使用新的。但这是一个必须在 Turbo C++ 中完成的大学项目。有什么方法可以让它在 Turbo C++ 中工作吗?
这取决于您拥有的 Turbo C++ 版本。一些软件考古:
3.1 之前的古代 DOS 版本不能很好地支持 STL,也不支持 #include <string>
。他们使用 pre-standard 包含扩展名为 .h 的格式:#include <string.h>
等。尝试添加 .h
,你可能会很幸运。
大约在版本 4 或 5.0 左右,他们开始支持 #include <string>
header 格式和大部分 STL。这些仍然是 pre-standard 编译器。
STL 支持在早期版本的 Borland Builder 中仍然存在问题,直到 Builder 5 左右。那应该是 BCC 编译器的 5.5 左右版本。
名为 Turbo C++ 的 RAD 工具于 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 标准库。
如果您需要一个字符串 class,您可能必须自己制作一个。
仔细阅读,阅读内置帮助,检查包含的示例程序,您可能会成功。
请注意,该产品的更高版本(不称为 Turbo C++ IIRC,而是 Borland C++ 或 Borland Builder)改进了对 C++98 的支持,包括标准库。
好吧,千辛万苦找到方法了。不幸的是,您不能使用 string
和其他此类数据类型,因为它们当时甚至都没有实现。你需要做以前做过的事情。使用 char
数组而不是 string
并创建与之相关的函数。
现在 char
数组有很多限制和问题,这就是实施 string
的原因。但是你必须像从头开始编写 string
一样编写 char
数组函数。
如果要比较或复制两个 char 数组,则必须循环比较它们。它会有点复杂,但这是对我最有效的方法。
如果需要,我可以为特定任务提供一些示例代码。
您可以使用字符数组代替字符串。 例如,我们需要将变量 str 声明为字符串。可以简单地完成:
char a[10]; // the 10 is the size of the array.
包含一个单独的头文件以使用库函数。
我遇到了同样的问题然后我意识到我忘记了using namespace std
那解决了一切。