用c++写了一个函数判断一个数组是否包含另一个数组 但是总是返回-1 请大神们帮忙看看错在哪里

问题描述

用c++写了一个函数判断一个数组是否包含另一个数组 但是总是返回-1 请大神们帮忙看看错在哪里

int substr_index( const char substr[], const char str[])
{
int flag = -1;
int sizeOfSubstr = sizeof(substr)/sizeof(char);
int sizeOfStr = sizeof(str)/sizeof(char);
for (int i = 0; i < sizeOfStr; i++)
{
if (str[i] == substr[0])
{
flag = i;
for (int j = 1; j < sizeOfSubstr; j++)
{
if (str[i + j] != substr[j])
{
flag = -1;
break;
}
}
}
if (flag == i)
break;
}
return flag;
}

解决方案

         int sizeOfSubstr = strlen(substr);
         int sizeOfStr = strlen(str);

这样就可以了,亲自调试通过。

解决方案二:

不应该用sizeof,应该用strlen代替。

解决方案三:

int substr_index( const char substr[], const char str[])

数组作为函数函数传递的时候,都会退化为指针。
所以你的sizeof()操作都是4(32位平台)

解决方案四:

sizeof(substr)不会反悔数组占用的空间。在函数传递时,char substr[]与char *substr相似。都是传递一个指针。

解决方案五:

sizeof(substr)不会反悔数组占用的空间。在函数传递时,char substr[]与char *substr相似。都是传递一个指针。

解决方案六:

substr_index中的数组参数,会被当做指针,则有你用sizeof获得的是指针的长度,32位下面就是4,而你需要的是数组元素个数

解决方案七:

strlen对“1234”这样的有效,对{'1','2','3','4'}无效

解决方案八:

贴一个完善的程序供lz参考

解决方案九:

贴一个完善的程序供lz参考 http://www.cnblogs.com/kaituorensheng/p/3633700.html

解决方案十:

贴一个完善的程序供lz参考 http://www.cnblogs.com/kaituorensheng/p/3633700.html

时间: 2024-11-02 01:32:48

用c++写了一个函数判断一个数组是否包含另一个数组 但是总是返回-1 请大神们帮忙看看错在哪里的相关文章

c c++-写一个函数判断输入的字符串是否是一个点分十进制格式的IP地址

问题描述 写一个函数判断输入的字符串是否是一个点分十进制格式的IP地址 写一个函数判断输入的字符串是否是一个点分十进制格式的IP地址 解决方案 #include ""winsock2.h""#pragma comment(libws2_32.lib"")BOOL CheckIsValidIP(const char* sIP){ unsigned long ulAddress = inet_addr(sIP); if (INADDR_NONE ==

按钮-自己参照书本写了一个Java Swing中的容器类入门程序设计,但是运行结果不对,求大神帮帮忙!

问题描述 自己参照书本写了一个Java Swing中的容器类入门程序设计,但是运行结果不对,求大神帮帮忙! /*题目是这样的:创建一个窗体在其中摆放两个内容面板对两个面板进行边框个性化设置.初始状态为第二个面板不可见,当单击第一个面板中的"打开"按钮时,第二个面板即可见:当单击第一个面板中的"关闭"按钮时,第二个面板消失. 以下是我结合书本写的代码,不知道为什么运行不了???*/import javax.swing.*;import java.awt.*;impor

java中输出一个日期排序,输出格式怎么变成Date@2c905b34类似的了。。请大神指点

问题描述 java中输出一个日期排序,输出格式怎么变成Date@2c905b34类似的了..请大神指点 java中输出一个日期排序,输出格式怎么变成Date@2c905b34. Date@3953c9c7类似的格式了..请大神指点 : Date[] days = new Date[5]; days[0] = new Date(2012123); days[1] = new Date(201515); days[2] = new Date(2008123); days[3] = new Date(

工具-如何实现这样一个数据列表,请大神帮帮忙

问题描述 如何实现这样一个数据列表,请大神帮帮忙 各位大神,小弟最近需要弄个数据列表,具体需求是从数据库中查询数据生成表格,这个数据时一行一行的.表格生成之后需要按照某一列的单元格内容进行分组,分组之后的数据可以折叠展开以方便查看(类似excel中行组合). 取数我还勉强能弄,但是前端分组+折叠/展开的功能实在是不会弄(原谅我是个小白,弄不出来就要失业了).请问有什么好的思路或者是现成的工具可以实现这个需求? 解决方案 什么语言什么平台没有说,假设你要的是web的http://download.

如何写js可以在checkbox复选框被选中时获取value的值?请大神赐教

问题描述 如何写js可以在checkbox复选框被选中时获取value的值?请大神赐教 解决方案 var obj = document.getElementsByName("interest");//选择所有name="interest"的对象,返回数组 var s='';//如果这样定义var s;变量s中会默认被赋个null值 for(var i=0;i<obj.length;i++){ if(obj[i].checked) //取到对象数组后,我们来循环

mysql-求助MySQL的关于sql语句怎么写??三表的查询~~~请大神进来帮忙~~~~~

问题描述 求助MySQL的关于sql语句怎么写??三表的查询~~~请大神进来帮忙~~~~~ 现在我有三个表: 表1: pre_common_member_profile: uid(用户的uid), gender(性别), birthyear(出生的年), birthmonth(出生的月), birthday(出生的日) 表2: pre_home_friend: uid(用户的uid), fuid(加为好友的uid) 表3: pre_home_friend_request: fuid(发送好友请求

python学习-求用Python写个小函数:让用户在界面输入一个数字,然后返回输出这个数字加1的结果

问题描述 求用Python写个小函数:让用户在界面输入一个数字,然后返回输出这个数字加1的结果 求用Python写个函数:让用户在界面输入一个数字,然后返回输出这个数字加1的结果,小白刚学Python,求指点,谢谢! 解决方案 不好意思: return x+1 不需要,只能在函数内使用 可以像下面这么写: x = int(input("x = ")) print("Output is:",x+1) 解决方案二: 写一个函数输入4个数字然后输出每个字符之间加一个空格

请大神帮忙写一个简单的聚类算法程序,在线等……用matlab或者java实现

问题描述 请大神帮忙写一个简单的聚类算法程序,在线等--用matlab或者java实现 Step1:将N个数据,按照从小到大的顺序排序 d1.d2,.....dn:其中d1时最小值,dn是最大值 聚类判别阈值计算方法为: Step2:让每个数据都作为一个类,那么有 {d1},{d2},{d3},.....{dn} Step3:计算聚类中心 假设共有P个类,那么1<=k<=P,其中r代表每个类中数据的个数,同时计算相邻两个聚类中心之间的距离,如下 Step4:找出相邻两个聚类中心的最小值 Ste

但没有用remove函数-编写了一个Java循环报数的问题,应该是哪里卡住了过不去,求大神指点

问题描述 编写了一个Java循环报数的问题,应该是哪里卡住了过不去,求大神指点 public class Jump {/*1-100号人循环报数,报到7的倍数的输出,第一轮输出714,...98第二轮99报1输出513....不管是第几轮,输出完50个数结束.*/ public static void main(String[] args) { int arr_all[] = new int[101]; int m = 1; int i = 1; int out = 0; int count =