使用数组作为函数输入参数
Using Arrays For Function Input Argument
我正在尝试使用数组作为函数的输入参数,当我使用手动值调用此函数时,函数运行良好,但是当我使用具有该值而不是手动值的数组时,我的函数无法正常工作。
我的代码示例:
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','[=11=]'}; // <- NULL terminated , a well formed string
Search("NotePad1" , Word);
因为C/C++中的String
和null终止。
结论:
如果您在参数需要字符串的地方传递 char 数组,请确保 char 数组以 null 终止或将字符串作为 "this" 传递。
我正在尝试使用数组作为函数的输入参数,当我使用手动值调用此函数时,函数运行良好,但是当我使用具有该值而不是手动值的数组时,我的函数无法正常工作。
我的代码示例:
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','[=11=]'}; // <- NULL terminated , a well formed string
Search("NotePad1" , Word);
因为C/C++中的String
和null终止。
结论:
如果您在参数需要字符串的地方传递 char 数组,请确保 char 数组以 null 终止或将字符串作为 "this" 传递。