将数组用于函数输入参数

Using Arrays For Function Input Argument

本文关键字:输入 参数 函数 用于 数组      更新时间:2023-10-16

我正在尝试使用数组作为函数的输入参数,当我使用手动值调用此函数时,该函数运行良好,但是当我使用该值的数组而不是手动值时,我的函数无法正常工作。

我的代码示例:

Search("FileName","Word");
----------------------
Search("NotePad1","Hello"); >>> Work Correctly!
----------------------
But:
--------------------
char Word[25]={'H','e','l','l','o'};
Search("NotePad1",Word); >>>Doesn't Work! :-(
--------------------

字符串文本(如 "Hello")末尾还包括 NUL 终止符字节。

将终止符也添加到数组中:

char Word[25]={'H','e','l','l','o', 0};

否则,从数组中读取的 C 字符串还将包含数组末尾的任何垃圾数据及其之后的内存位置,直到内存中的下一个零字节。

呢:

char* Word = "Hello";

取决于您如何声明函数。

假设函数声明为

boolean Search(String Filename ,String word);

尝试

char Word[]={'H','e','l','l','o',''}; // <- NULL terminated , a well formed string
Search("NotePad1" , Word);

这是因为 C/C++ 中的String和 null 终止。

结语

如果要传递参数需要字符串的 char 数组,

请确保 char 数组以 null 结尾或将字符串传递为"this"。