将单词生成为 C、C++ 代码的 PHP 代码

标签 php c++ c arrays

我必须开发一个小程序,根据给定的字母和一些规则生成单词。我是用 PHP 做的,效果很好,但是:现在我需要将这段代码翻译成 C 或 C++。我试图实现它,但我在使用字符串数组时遇到了一些麻烦。而且,我不擅长C,甚至C++。 有人,请帮我实现这段代码。如果可以的话,我会为你做的。谢谢。 这是附加的代码:

<?php

$val_n = array("S","D","R");
$val_t = array("a","b","c","d","f");

$reguli = array( 
    array("S" => "aS"), 
    array("S" => "bD"), 
    array("S" => "fR"), 
    array("D" => "cD"), 
    array("D" => "dR"), 
    array("R" => 'bR')
    );

    $rez = array();
    $pas = array();
    $parcurgere = array();
    $parc_sf = array();

function generare($val_n, $reguli, $cuvint, $parcurgere)
{
    global $rez;
    global $pas;
    global $parcurgere;
    global $parc_sf;


if( strlen($cuvint) >= 6)
{       
    if( $cuvint[strlen($cuvint) -1] == 'R' )
    {
        $cuvint[strlen($cuvint) -1] = "f";          
        if( ! in_array($cuvint, $rez) )
        {                   
            $rez[] = $cuvint;
            array_push($parc_sf,$cuvint[strlen($cuvint) -1] = "f");
            array_push($pas,$parcurgere);                                   
        }

    } else if( $cuvint[strlen($cuvint) -1] == 'D' )
    {
        $cuvint[strlen($cuvint) -1] = "d";          
        if( ! in_array($cuvint, $rez) )
        {       
            $rez[] = $cuvint;
            array_push($parc_sf,$cuvint[strlen($cuvint) -1] = "d");             
            array_push($pas,$parcurgere);
        }
    }
} else if( $cuvint[strlen($cuvint) -1] != 'f' || $cuvint[strlen($cuvint) -1] != 'd')
{           
    foreach($reguli as $reg)
    {
        if(isset($reg[substr($cuvint, -1)]))
        {               
            $pasi = $reg[substr($cuvint, -1)];              
            array_push($parcurgere,$pasi);              
            $cuvint .= $reg[substr($cuvint, -1)];
            //$cuvint[strlen($cuvint)-3] = '';              
            generare($val_n, $reguli, $cuvint, $parcurgere);                
        } 
    }       
}   
}

    $cuvint = "S";
    $pasi = '';

    generare($vn, $reguli, $cuvint, $parcurgere);

?>

最佳答案

我建议查看 std::vector表示可以改变大小的数组。

关联数组(array("S"=> "aS")),可以看std::map或 std::unordered_map

关于将单词生成为 C、C++ 代码的 PHP 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22371341/

相关文章:

c++ - c/c++ - 通过套接字发送 time_t 的最安全方式

c++ - 解析二进制文件以查找 C++ 中的 URI

php - 同时启用 PHP 解析器和 Include 语句

php - 如果我使用 $this->Form->textarea() 验证在 cake php 中不起作用

PHP - CodeIgniter - 为 foreach() 提供的参数无效

具有全局变量的 C++ 多线程

c - 将顺序代码转换为 openMP 并行结构

C 宏 : Conditional code based on parameter value?

c - 如何为 C11 U“unicode 文字”正确使用 `__attribute__((format (printf, x, y)))`?

php - 允许 PHP 一切/给予 PHP 用户 root 权限