【发布时间】:2019-03-06 13:20:11
【问题描述】:
我正在尝试将字符操作库从 PHP 转换为 C++。
1) 我用static_cast<char>() 替换了所有单个chr() 函数(仅适用于单个字符,即:PHP: $out = chr(50); => C++: std::string s = static_cast<char>(50))。
这对吗?
2) 给定以下 PHP 代码:
$crypt = chr(strval(substr("5522446633",0,2)));
在这个 sn-p 中,我们从字符串“5522446633”中提取 2 个字符,并从函数 strval() 中“获取它们的字符串值”(PHP manual)。
我知道如何从 C++ 中的一个字符中获取(整数)值,但是如何处理两个字符呢?
如何将这个 sn-p 翻译成 C++?
【问题讨论】:
-
您的所有问题都可以通过打开您的 C++ 书籍到解释如何使用
std::string的章节来回答。std::string也有一个非常相似的substr()函数,而 PHP 的strval()在这种情况下完全没有意义。最接近的类似物是std::string的构造函数。 C++ 不是 PHP,它在基本方面与 PHP 不同。如果你试图不断地将它与 PHP 等同起来,你只会阻碍你自己对 C++ 的理解。帮自己一个忙,如果你认真想精通 C++,就完全忘记你对 PHP 的了解。 -
@SamVarshavchik :对不起,先生,但我的 C++ 书告诉我 static_cast、std::string 和 wathever 的行为方式,而不是我的解释/翻译在这种情况下是否正确。我没有问我是否必须忘记有关 PHP 的所有内容,我只是指出我不了解有关 strval("AB") 的返回值的文档,以及如何用 C++ 做同样的事情:是 ASCII 'A' 的值 + 'B' 的 ASCII 值,MSB 上的 'A' 的 ASCII 值和 LSB 上的 'B' 的 ASCII 值,ASCII 'A' 模什么?
-
一个简单的谷歌搜索“php strval”会立即找到关于“strval()”在 PHP 中的作用的完整解释,而且它肯定会比坐着等待别人响应要快得多在 stackoverflow.com 上。 strval 只是将一些任意 PHP 变量转换为字符串,而且,正如我耐心解释的那样,这通常是
std::string的许多构造函数所做的。在某些情况下,格式化的输出运算符可能是 C++ 的等价物。再一次:没有直接的翻译,C++ 中的数字绘制等效于 PHP 中的某些东西。它们根本不同。 -
chr("AB")产生空输出,因为“AB”不是有效数字。您确定这是您要转换的 php 代码吗? -
@AlanBirtles :是的,在 PHP 脚本的注释中,它说
convert char two by two。此代码取自 GS1-128 条码生成器。
标签: php c++ code-translation