×

split()函数 语法 函数

split函数的语法?c语言中的strcmp函数

admin admin 发表于2022-07-05 19:47:45 浏览103 评论0

抢沙发发表评论

split函数的语法


Split(expression[, delimiter[, count[, compare]]])
Split函数语法有如下几部分: 部分 必要性描述 expression 必需的。包含子字符串和分隔符的字符串表达式。如果expression是一个长度为零的字符串(),Split则返回一个空数组,即没有元素和数据的数组。 delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符( )作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的expression字符串。 count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。 compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。


c语言中的strcmp函数


c风格字符串是以’\0’为结束标志的。如果你的name没有初始化,用scanf得到前3个字符为abc,后面的是随机的,当你使用strcmp(name,
“abc“)的时候,有可能你的name低第四个字符正好是’\0’,那么此时就是两个相同,否则就是不同。
举个例子
如果你的name的分布是“abc\0defghi“;此时你使用strlen获取他的长度将会是3,这就是c风格字符串以’\0’结束,后面的就不考虑了,使用strcmp也是同样的道理。

解决的办法是你在name定义的时候初始化
两种方法
1、char
name
=
{0};
2、char
name;
memset(name,
0,
sizeof(name));

OpenCV 用imread函数读入灰度图变成彩色图怎么回事


在使用OpenCV的C++编程的时候遇到了这样的情况,当我用:
[cpp] view plain copy
img = imread(“F:\\My_Desktop\\data\\gesture_frame\\test\\1\\1\\0.jpg“);

语句读入该路径下面的0.jpg这张灰度图像的时候,再用img.channel()输出图片的通道数,惊奇地发现输出的结果是3而不是1。
查看了imread函数的原始定义如下:

[cpp] view plain copy
CV_EXPORTS_W Mat imread( const String& filename, int flags = IMREAD_COLOR );

这时候才恍然大悟,当我们在使用imread()函数而没有给出第二个参数的时候,第二个参数的默认值是IMREAD_COLOR,即默认读入的图片是彩色图片。
当我把上面读入的img图片的每个通道的值都输出来的时候,发现每个像素的三个通道的值都是相等的,也就是说,0.jpg虽然是一张灰度图片,但是默认以彩色的方式读入,所以三个通道的值都取了该像素对应的灰度值。

所以~~正确的读入灰度图的方式是:

[cpp] view plain copy
img = imread(“F:\\My_Desktop\\data\\gesture_frame\\test\\1\\1\\0.jpg“,0);
即使0.jpg本来就是一张灰度图,还是得让第二个参数等于0!!!
-语法