使用数组作为函数输入参数

时间:2015-01-19 06:33:47

标签: c++ arrays function

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

我的代码示例:

Search("FileName","Word");
----------------------
Search("NotePad1","Hello"); >>> Work Correctly!
----------------------
But:
--------------------

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

Search("NotePad1",Word); >>>Doesn't Work! :-(
--------------------

3 个答案:

答案 0 :(得分:2)

"Hello"之类的字符串文字也包括最后的NUL终结符字节。

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

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

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

答案 1 :(得分:0)

怎么样:

char* Word = "Hello";

取决于你如何宣布你的功能。

答案 2 :(得分:0)

假设函数声明为

boolean Search(String Filename ,String word);

尝试

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

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

结论

如果你传递char数组,其中参数需要一个String,确保char数组为空终止或传递字符串为&#34;这个&#34;。