将数组用于函数输入参数
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',' '}; // <- NULL terminated , a well formed string
Search("NotePad1" , Word);
这是因为 C/C++ 中的String
和 null 终止。
结语 :
如果要传递参数需要字符串的 char 数组,请确保 char 数组以 null 结尾或将字符串传递为"this"。
相关文章:
- 将输入参数作为右值引用传递?
- 是否可以在命令行中将输入参数传递给可执行文件
- C++基于输入参数的动态代码生成
- 我想知道为什么"std::unique_ptr<int> foo(新 int)"是合法的,因为"std::<int>unique_ptr"要求输入参数类型应该是"int"?
- 如何使用输入参数作为文件的传递?
- 在函数中使用运算符重载,在 c++ 中使用 const 类型输入参数
- 提供变量作为 MATLAB 系统命令的输入参数,以便C++可执行文件
- 函数的函数无法识别输入参数
- 当迭代器(输入参数)通常不是constexpr时,constexpr算法真的有用吗
- 如何将一个使用参数包和typename的类作为函数(c++)的输入参数
- CvMat:输入参数的大小不匹配
- 在什么情况下,使用'const T*'输入参数比'const T&'更可取?
- std::具有两个输入参数的矢量构造函数
- GoogleMock:如何根据另一个输入参数设置ArgReferee?
- 模板化函数以从输入参数推断返回类型 stl-container
- GoogleMock:如何验证输入参数的调用次数?
- 当我将 char 数组发送到输入参数为字符串的函数时会发生什么?
- 应该接受不同输入参数的纯虚函数 - 应该如何实现
- C++主函数的输入参数
- STD :: Atomic_fetch为什么将指针作为其输入参数