c语言-菜鸟求教,为什么会显示找不到,感激不尽

问题描述

菜鸟求教,为什么会显示找不到,感激不尽

#include
#include
#include
char *mystrstr(char *string,char *findstring )
{
if (string == NULL || findstring == NULL)
{
return NULL;
}
int flag = 1;
while (*string != '')
{
char *p=string;
char *px = string;
char *now = findstring;
while (*now != '')
{
if (*px == *now)
{
px++;
now++;
}
else
{
flag = 0;
break;
}
}

if (flag == 1)
{
return p;
}
string++;
}
if (flag == 0)
{
return NULL;
}
}
void main()
{
char str1[20] = "i love you";
char str2[20] = "love";
char *p=mystrstr(str1, str2);
if (p == NULL)
{
printf("没有找到n");
}
else
{
printf("%cn", *p);
}

system("pause");

}

解决方案

改成了如下这样:

 #include <stdio.h>
#include <iostream>
using namespace std;

char *mystrstr(char *string,char *findstring )
{
    if (string == NULL || findstring == NULL)
    {
        return NULL;
    }
    int flag = 1;
    while (*string != '')
    {
        char *p=string;
        char *px = string;
        char *now = findstring;
        while (*now != '')
        {
            if (*px == *now)
            {
                px++;
                now++;
            }
            else
            {
                flag = 0;
                break;
            }

            if(*now != '')
                flag = 1;
        }

        if (flag == 1)
        {
            return p;
        }
        string++;
    }
    if (flag == 0)
    {
        return NULL;
    }
}
void main()
{
    char str1[20] = "i love you";
    char str2[20] = "love";
    char *p=mystrstr(str1, str2);
    if (p == NULL)
    {
        printf("没有找到n");
    }
    else
    {
        printf("%cn", *p);
    }
    system("pause");
}

就多加了一下两句:
if(*now != '')
flag = 1;
while (*string != '')否则的话即使在某个位置两个字符串都匹配上了,但是没有把flag置1,无法跳出循环,
继续进行while (*string != '')里的循环,然后由于字符匹配不上,flag被置成0了

解决方案二:

#include
#include
#define NULL 0
缺少头文件的引入,NULL在C/C++标准库中被定义为一个宏,一般为:
#define NULL ((void*)0) /*C中的“标准”写法,NULL被替换为一个void*类型的指针右值,值等于0;由于是void*类型,可以隐式转化为其它类型的指针。

解决方案三:

#include
#include
#define NULL 0

时间: 2024-12-03 18:49:14

c语言-菜鸟求教,为什么会显示找不到,感激不尽的相关文章

c语言-菜鸟求教:int Main(WORD *parameter1)的数据类型问题。

问题描述 菜鸟求教:int Main(WORD *parameter1)的数据类型问题. 问一下main函数的输入量是指向word类型变量的地址?main函数返回的值为int型? 解决方案 这个一般是用于传递参数,为什么用word不清楚,按理说应该是char[]或者char *才行,传别的,操作系统不支持,如果main是作为入口的话. 解决方案二: 入参是一个 WORD * 指针变量,你要说是指向 WORD 变量的地址也没错,返回值是 int 没错.

php上传excel导出pdf~菜鸟求教,大神指点

问题描述 php上传excel导出pdf~菜鸟求教,大神指点 烦了我三个星期的需求:在线excel转pdf. 需求是把excel上传后经过php转为pdf,我开是利用了phpexcel,上传后再用tcpdf生成,但是phpexcel无法,或者说找不到获取列宽和行高的函数.然后就直接用phpexcel调用tcpdf的类库输出,但是就生成乱码 - -. 目前使用的环境是PHP5.4+linux+tengine 现在有几个问题,想请教各路大神: 1.phpexcel如何获取列宽和行高 2.如何生成pd

linux编程-大菜鸟求教linux,想用c写一个helloworld不知从哪里下手,零基础伤不起啊,求大神指点。

问题描述 大菜鸟求教linux,想用c写一个helloworld不知从哪里下手,零基础伤不起啊,求大神指点. 解决方案 用apt安装gcc,用vim或者任意的编辑器创建源代码,用gcc编译. 解决方案二: 红帽啊?没用红帽,只用ubuntu,不过应该都差不多吧,打开终端,然后进入相应的目录,通过vim新建文件进行编辑 解决方案三: 进入终端,用vi创建一个.c文件,在里边用c语言写个程序,运行即可

菜鸟求教:如何用c#编写google的page rank算法

问题描述 菜鸟求教:如何用c#编写google的page rank算法 如题,本人对c#的学习刚起步,请各位达人赐教,将详细代码附上,谢谢. 解决方案 Google Page Rank算法--初稿Google Page Rank 算法google的page rank算法 解决方案二: 首先需要详细了解google的page rank算法的实现原理及伪代码,然后翻译成C#语言实现. 这个算法搜不到现成的代码啊.如果仁兄想研究的话,还是要下一番功夫啊.

菜鸟求教一个问题,求大神啊!

问题描述 菜鸟求教一个问题,求大神啊! ActivityCompat.requestPermissions();为什么会显示没有定义这个方法?跟api版本有关吗,我的是api18的! 求教啊 解决方案 版本太低了. 解决方案二: 另外换一个版本再试试. 解决方案三: 另外换一个版本再试试. 解决方案四: 黑马程序员-一个菜鸟到大神

信息删除-菜鸟求教:csdn博客中的删除功能是如何实现的

问题描述 菜鸟求教:csdn博客中的删除功能是如何实现的 博客列表中的删除按钮放上时显示一个连接,点击能实现删除,但是为什么这个链接拷到地址栏后却无法实现删除,而且会报错,求大神指教

adodc-用ADO控件编的一个简易学生成绩管理器,运行时显示找不到可安装的ISAM,求解决

问题描述 用ADO控件编的一个简易学生成绩管理器,运行时显示找不到可安装的ISAM,求解决 Private Sub Command1_Click() On Err GoTo MyErr If Command1.Caption = "添加" Then Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = &qu

传感器-刚进入大学 求教这个C语言编程 求教 求教

问题描述 刚进入大学 求教这个C语言编程 求教 求教 两个或三个QTI循线传感器 芯片是AT89S52 解决方案 http://wenku.baidu.com/link?url=LncWZJlepPxt-fQUQCTW-vpHa4205NitzoEuiiGp9UgaWS1J9wuSSlq8vmq69RG4dj6y8e6Ic8cXIDpWUwoE6L0cvKMwWrLWEZ9dbo4OKOm 解决方案二: 好运好运必须使用installShield这种打包工具把源程序打成安装文件后才能在其他机器上

数据-菜鸟求教!C#大文本处理如何提速?

问题描述 菜鸟求教!C#大文本处理如何提速? 有个几百兆的文件,里面全是数据,每一行都要处理,如: GOTO / 8.39900, -4.61009, 115.00000 要转换成 LIN {E6POS: X 8.39900, Y -8.37946, 115.00000, A 0.000, B 0.000, C 0.000, E1 0.000} C_VEL 现在是小文件可以,数据量大了速度就非常慢,1M的都要7分钟才能处理完 解决方案 难怪代码慢,你还用了字符串相加. 你应该用 StringBu