| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 466 人关注过本帖
标题:检测字符串
取消只看楼主 加入收藏
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
结帖率:86.96%
收藏
已结贴  问题点数:5 回复次数:4 
检测字符串
   7.编写一个函数string_in(),它接受两个字符串指针参数。如果第二个字符串被包含在第一个字符串中,函数就返回被包含的字符开始的地址。例如,string_in("hats","at")返回hats中a的地址,则,函数返回空指针。在一个使用循环语句为这个函数提供输入的完整程序中进行测试。

这串代码的主函数是答案的,所调用的函数是我写的,检测不到的时候能够正常显示,检测到时就出现内存错误,应该是红字问题,麻烦看一下,求详细.

#include <stdio.h>

char *string_in(char *p1, char *p2);

int main(void)
{
    char str1[81];
 char str2[21];
 char *p;
 do
 {
  puts("input range string:");
  gets(str1);
  puts("input match string:");
  gets(str2);
  p = string_in(str1, str2);
  if ( p )
  {
   puts("Find!");
   puts(p);
  }
  else puts("Can't find!");

  puts("input any char except q to go on.");
  gets(str1);
 }
 while(*str1 != 'q');

 puts("Quit.");
    return 0;
}

char *string_in(char *p1, char *p2)
{
    char *p;
    int i,count;
    while(*p1!='\0' && *p2!='\0')
    {
        if(*p2==*p1)
        {
            p2++;
            p1++;
            count++;
        }
        else
            p1++;
    }
    if(*p1=='\0'&& p2!='\0')
        p=NULL;
    else
    {
    for(i=0;i<count;i++)
    p2--;
    for(; *p1=*p2 ;p1--)
    p=p1;
    }
return p;
}
搜索更多相关主题的帖子: 字符串 
2011-08-22 11:17
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
收藏
得分:0 
在线等~~
2011-08-22 11:17
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
收藏
得分:0 
回复 3楼 dreamofgod
p2字符改变是在*p2==*p1时才改变呀和,*p2!=*p1的情况下的语句有关吗?
2011-08-22 12:38
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
收藏
得分:0 
回复 3楼 dreamofgod
还有,已经把p1的值赋给了str1,为什么后来还要p1++
2011-08-22 12:42
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
收藏
得分:0 
回复 3楼 dreamofgod
刚试过你的函数,如果字符串2是字符串1的最后一个字母好像检测不到哦
2011-08-22 12:44
快速回复:检测字符串
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017637 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved