如何在MS Visual C++中启用VLA、C99中定义的可变长度数组或根本不可能的VLA?
是的,我知道C++标准是基于C89的,VLA在C89标准中不可用,因此在C++中不可用,但MSVC++也应该是一个C编译器,这一行为可以使用/TC编译器参数(Compile as C Code (/TC))来切换。但这样做似乎并不能启用VLA,编译过程在构建C++ (Compile as C++ Code (/TP))时也会失败,并出现相同的错误。也许MSVC++ C编译器只兼容C89,或者我遗漏了一些东西(一些特殊的构造或编译指示/定义)?
代码示例:
#include <stdlib.h&
给定一个由单个空格分隔的单词组成的字符串,按单词在字符串中出现的次数降序打印出来。
例如,输入字符串“ab bc bc”将生成以下输出:
bc : 2
ab : 1
如果使用像地图这样的C++数据结构,这个问题将很容易解决。但是,如果这个问题只能用普通的老式C来解决,那看起来就难多了。
我应该在这里使用什么样的数据结构和算法?请尽可能详细。我在DS和Algo方面很弱。:-(