Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3878877
  • 博文数量: 356
  • 博客积分: 10458
  • 博客等级: 上将
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-24 14:59
文章分类

全部博文(356)

文章存档

2020年(17)

2019年(9)

2018年(26)

2017年(5)

2016年(11)

2015年(20)

2014年(2)

2013年(17)

2012年(15)

2011年(4)

2010年(7)

2009年(14)

2008年(209)

分类: C/C++

2008-05-15 15:30:23

char* fun(char buf[], char lpb[])
{
   
}

如果我传给buf的值是"abcdefg", 传给lpb的值是"ef",要最后返回的值是"abcd",函数体怎么写啊?
哪位哥哥能帮帮我,可能考试会考的?


看懂了吗?就是截取"ef"之前的内容.
要是C++里有现成的函数也行
============================ 


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

char* fun(char buf[], char lpb[]);
int main()
{
 
 char str1[] = "Borland International", str2[] = "nation";
 char *test = fun(str1, str2);
 if(NULL == test) return -1;
 cout << test;
 free(test);
 return 0;
}
char* fun(char buf[], char lpb[])
{
    char *ptr;
    ptr = strstr(buf, lpb);
 if(NULL == ptr)
 {
  cout << "notfond " << lpb;//这里要看你怎么取舍了 如果没找到则返回整个

//串也行  只是看题目要求
  return NULL;
 }
    
   int iLen = (int)(ptr-buf);
 char *p;
    p = (char *)malloc(sizeof(char)*(iLen+1));
 strncpy(p, buf, iLen);
 p[iLen] = '\0';
 return p;
}

阅读(1595) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~