如何在CAPL中将字符串作为用户定义的函数参数传递

守护进程画家

根据文档,显然在CAPL中,您不能将字符串作为用户定义函数的输入参数传递(请参阅CAPL简介»函数参数的数据类型)。

我正在读写方向上进行文件处理。我想将代码重构为使用接受文件名作为输入参数的函数。

除了显而易见的解决方法(例如使用全局变量,系统/环境变量)之外,我还对其他替代方法的可能性感兴趣。

你怎么做呢?


编辑

CAPL不提供字符串类型,就像C一样,它们只是字符的“数组”。

在我提到的帮助页面中,您可以传递单个char作为参数函数,但不能传递char []数组。

理所当然的先生 Spiller指出,这段代码有效:

on start
{
    function("a string");
}

void function(char string[])
{
    write ("my string is %s", string);
}

和输出:

CAPL / .NET我的字符串是字符串

但是,对我来说,这似乎是一个关联数组。

例如,它也可以编译:

void function(int number[], char string[])
{
    // do stuff
}

但是,了解发生了什么事情突然变得更加困难,因为这无法编译:

on start
{
    function(13, "a string");
}

void function(int number[], char string[])
{
    write ("my number is %d", number);
    write ("my string is %s", string);
}

错误:参数类型不匹配。

最后:

variables
{
    int associativeArray[ float ];
}

on start
{
    associativeArray[1] = 3;
    function(associativeArray, "a string");
}

void function(int number[float], char string[])
{
    for (float aKey: number)
    {
        write ("my number is %d(%f)", number[aKey], aKey);
    }
}

CAPL / .NET我的电话是3(1.000000)

可以按预期工作,但是再一次,我不确定在这种情况下使用关联数组的注意事项(例如,我无法找到使用相同语法对字符串进行迭代的方式),以及如何如果解决,您会如何解决?

M.球员

您提到的帮助页面还在下面进一步说明

和上述数据类型的矩阵(我不记得确切的用语,并且现在无法访问CANoe)。

char[]int[]等等都没有关联数组,但数组您可能会认为它们是关联数组,但键只能是一个正整数。

就像您说的那样,CAPL和C以相同的方式处理字符串,即,作为字符数组。因此,使用如下定义回到您的原始问题

void func(char param[])

是您要将字符串(只是一个字符数组)传递给函数时的一种方式。


这个:

on start
{
    function(13, "a string");
}

void function(int number[], char string[])
{
    write ("my number is %d", number);
    write ("my string is %s", string);
}

不编译,因为13它不是整数数组,而只是一个整数。因此,编译器说类型不匹配

这将起作用:

on start
{
  int i[1];
  i[0] = 13;
  function(i, "a string");
}

同样,以下代码也不会编译:

void function(char string[])
{
   ...
}

on start
{
  function('a');
}

'a' (请注意单引号)只是一个字符,没有字符数组,因此签名不匹配。


您只需使用[]运算符即可获得字符串的各个字符(也与C中相同)。

char s[] = "abcde"; char c = s[2];

将'c'存储到 s

希望能解释一下。随时要求进一步澄清。(我确实是从头开始输入所有内容,因此请原谅所有较小的语法错误)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过在用户定义的函数中将字符串作为列名传递来进行过滤?

来自分类Dev

我如何在鱼壳中将函数参数作为字符串传递

来自分类Dev

在函数中将字符串数组作为输入参数传递

来自分类Dev

如何在用户定义的函数中将列表作为参数传递?

来自分类Dev

如何在purrr map函数中将字符串作为函数传递

来自分类Dev

在函数中将字符串作为参数传递时如何保留列名

来自分类Dev

如何在Handlebars帮助器表达式中将字符串作为参数传递?

来自分类Dev

如何在glShaderSource中将字符串作为GLchar **(char **)参数传递?

来自分类Dev

如何在C ++中将字符串的动态二维数组作为参数传递

来自分类Dev

如何在C中将字符串作为参数传递给线程

来自分类Dev

如何在React中将Unicode字符作为函数参数传递

来自分类Dev

为什么在函数参数中将字符串作为const字符串传递

来自分类Dev

在bash中将字符串作为函数的参数传递时,字符串被剪切

来自分类Dev

如何在Python中将字符串传递给函数

来自分类Dev

用户单击按钮时如何在VBS用户定义的函数中传递字符串值参数(HTA应用程序)

来自分类Dev

如何在Powershell中将字符串作为非字符串传递给命令?

来自分类Dev

如何在Django中将python字符串作为字符串传递给javascript?

来自分类Dev

如何在onclick函数中传递字符串参数

来自分类Dev

如何在ASP.NET Core API控制器中将URL中的字符串作为参数传递

来自分类Dev

在bash中将带空格的字符串作为函数参数传递

来自分类Dev

如何获取自定义React Babel编译指示以将字符串作为参数而不是函数传递

来自分类Dev

在SQL命令中将字符串作为datetime参数传递

来自分类Dev

在dplyr动词中将字符串作为参数传递

来自分类Dev

在ddply中将字符串作为参数传递

来自分类Dev

在bash中将字符串或数组作为参数传递

来自分类Dev

在R中将字符串作为参数传递

来自分类Dev

在Powershell中将字符串变量作为参数传递

来自分类Dev

在方法重载中将字符串作为参数传递

来自分类Dev

如何在字符串中将%like%与字符串列表作为R中的参数?

Related 相关文章

  1. 1

    如何通过在用户定义的函数中将字符串作为列名传递来进行过滤?

  2. 2

    我如何在鱼壳中将函数参数作为字符串传递

  3. 3

    在函数中将字符串数组作为输入参数传递

  4. 4

    如何在用户定义的函数中将列表作为参数传递?

  5. 5

    如何在purrr map函数中将字符串作为函数传递

  6. 6

    在函数中将字符串作为参数传递时如何保留列名

  7. 7

    如何在Handlebars帮助器表达式中将字符串作为参数传递?

  8. 8

    如何在glShaderSource中将字符串作为GLchar **(char **)参数传递?

  9. 9

    如何在C ++中将字符串的动态二维数组作为参数传递

  10. 10

    如何在C中将字符串作为参数传递给线程

  11. 11

    如何在React中将Unicode字符作为函数参数传递

  12. 12

    为什么在函数参数中将字符串作为const字符串传递

  13. 13

    在bash中将字符串作为函数的参数传递时,字符串被剪切

  14. 14

    如何在Python中将字符串传递给函数

  15. 15

    用户单击按钮时如何在VBS用户定义的函数中传递字符串值参数(HTA应用程序)

  16. 16

    如何在Powershell中将字符串作为非字符串传递给命令?

  17. 17

    如何在Django中将python字符串作为字符串传递给javascript?

  18. 18

    如何在onclick函数中传递字符串参数

  19. 19

    如何在ASP.NET Core API控制器中将URL中的字符串作为参数传递

  20. 20

    在bash中将带空格的字符串作为函数参数传递

  21. 21

    如何获取自定义React Babel编译指示以将字符串作为参数而不是函数传递

  22. 22

    在SQL命令中将字符串作为datetime参数传递

  23. 23

    在dplyr动词中将字符串作为参数传递

  24. 24

    在ddply中将字符串作为参数传递

  25. 25

    在bash中将字符串或数组作为参数传递

  26. 26

    在R中将字符串作为参数传递

  27. 27

    在Powershell中将字符串变量作为参数传递

  28. 28

    在方法重载中将字符串作为参数传递

  29. 29

    如何在字符串中将%like%与字符串列表作为R中的参数?

热门标签

归档