根据关键字进行字符串拷贝
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 5003 Accepted: 1165

Description

把源字符串拷贝到目的字符串,如果指定关键字,则以该关键字结束(不包括关键字本身),如果拷贝失败,则得到空串。
具体要求:实现如下函数原型SafeStrcpy2KeyWord(),并在代码中调用该函数实现上述功能。该函数的实现要考虑各种可能的参数取值,以确保程序不出现崩溃。

int SafeStrcpy2KeyWord(char* pDestBuffer, //拷贝的目的地地址

        char* pSourceString, //拷贝的源地址int nDestBufferSize,    //拷贝的目的地缓冲区长度char* szKeyWord);  //指定关键字符串

返回值:所拷贝的字符串长度。如果拷贝失败,则返回0。

Input

输入包含多组数据,以EOF结束
每组数据第一行为不含空格的源字符串,长度小于256;接下来的一行或多行都是关键字串(长度小于16),一直到END结束。“NULL”表示关键字串为空,此时输出的拷贝后的长度应为0,拷贝后的字符串为空串(也用”NULL”表示,见下文)。

Output

对于每组数据输出拷贝的长度和拷贝后的目的字符串,以空格分隔。如果该目的字符串为空,则用”NULL”表示。

Sample Input

/home/tony/work_server/1/rtest/relayer.out
/
/t
/1/r
.
NULL
END

Sample Output

0 NULL
5 /home
22 /home/tony/work_server
38 /home/tony/work_server/1/rtest/relayer
0 NULL

问题链接:POJ3753 根据关键字进行字符串拷贝
问题简述:(略)
问题分析
    按照题意实现,不解释。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C语言程序如下:

/* POJ3753 根据关键字进行字符串拷贝 */#include <stdio.h>
#include <string.h>#define N 256int SafeStrcpy2KeyWord(char* pDestBuffer, //拷贝的目的地地址char* pSourceString, //拷贝的源地址int nDestBufferSize, //拷贝的目的地缓冲区长度char* szKeyWord) //指定关键字符串
{if(nDestBufferSize == 0 || strcmp(szKeyWord,"NULL") == 0) {return 0;} else {char *k;if((k = strstr(pSourceString, szKeyWord)) == NULL) {strcpy(pDestBuffer, pSourceString);return strlen(pSourceString);} else if(k-pSourceString == 0 || k-pSourceString > nDestBufferSize)return 0;else {int i;for(i = 0; i < k - pSourceString; i++)pDestBuffer[i] = pSourceString[i];pDestBuffer[i] = '\0';return i ;}}
}int main(void)
{char s[N], key[N], ans[N];while(scanf("%s", s) !=EOF) {while(scanf("%s", key) && strcmp(key, "END") != 0) {int len = SafeStrcpy2KeyWord(ans, s, N - 1, key);if(len == 0)printf("0 NULL\n");elseprintf("%d %s\n",len, ans);}}return 0;
}

POJ3753 根据关键字进行字符串拷贝【文本处理】相关推荐

  1. boost I 字符串与文本处理

    目录 一.lexical_cast 与C语言.C++的对比 二.format 1.format类 2.格式化语法 三.string_ref 1.背景 2.boost::string_ref 3.rem ...

  2. js ZeroClipboard 拷贝文本到剪贴板

    2019独角兽企业重金招聘Python工程师标准>>> 简述: 使用ZeroClipboard 在浏览器中需要拷贝文本到剪贴板 非IE浏览器不能直接 拷贝,所以使用ZeroClipb ...

  3. linux c strdup 字符串拷贝

    #include <string.h> char *strdup(const char *s); 函数介绍: strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函 ...

  4. linux strcpy 用法,由Linux中管道的buffer,浅谈C语言中char类型字符串拷贝使用strcpy()和=赋值符号的区别...

    今天在写父子进程用两个单向管道通信时,出现了错误: Segmentation fault (core dumped) 打开core文件发现: 附上源码: 1 #include 2 #include 3 ...

  5. 字符串拷贝函数memcpy()、strncpy()和snprintf()性能之比较

    问题: 函数memcpy(dest, src, sizeof(dest)).strncpy(dest, src, sizeof(dest))和snprintf(dest, sizeof(dest), ...

  6. 【C 语言】字符串拷贝 ( 函数形参使用推荐方法 | 凡是涉及 修改指针指向 的操作一律创建新的 指针变量 执行 | 引入 辅助 局部 指针变量 )

    文章目录 一.函数形参使用推荐方法 二.完整代码示例 一.函数形参使用推荐方法 在函数中 , 形参 中的 指针变量 , 不建议直接使用 ; 推荐 在 函数中 , 定义 局部 指针变量 , 接收 形参中 ...

  7. 【C 语言】字符串拷贝 ( 指针使用前判空 | while 空语句 )

    文章目录 一.指针使用前判空 二.while 空语句 三.代码示例 一.指针使用前判空 在任何指针使用之前 , 要先进行判空 ; 尤其是 函数 形参 指针 , 使用前先 判断该 指针变量 是一个合法的 ...

  8. 【C 语言】字符串拷贝 ( 优化指针操作 )

    文章目录 一.优化指针操作 二.优化指针操作 2 三.优化指针操作 3 四.优化指针操作 4 一.优化指针操作 在上一篇博客 [C 语言]字符串拷贝 ( 字符串拷贝业务逻辑代码 | 分离 主函数 与 ...

  9. 【C 语言】字符串拷贝 ( 字符串拷贝业务逻辑代码 | 分离 主函数 与 字符串拷贝 业务模型 )

    文章目录 一.字符串拷贝业务逻辑代码 二.分离 主函数 与 字符串拷贝 业务模型 一.字符串拷贝业务逻辑代码 下面的代码 , 是 字符串 拷贝 最简单的代码 , 仅 使用 指针 遍历内存 , 实现了字 ...

最新文章

  1. 程序模拟抽奖流程图_一道与联欢会相关的概率统计题目的模拟仿真
  2. Linux新手生存笔记[2]——vim训练稿
  3. AtCoder Grand Contest 023 C - Painting Machines
  4. exe打包工具哪个最好_一键分发工具哪个最好用?这款30万人都在用,很优秀!...
  5. 【Android】No resource found that matches the given name 'Theme.Sherlock.Light.NoActionBar'
  6. linux c取网卡名称,在Linux下用c编程肿么获取网卡序列号和硬盘序列号
  7. python的优点有哪些-python语言有什么优势
  8. iPhone Objective-C EXC_BAD_ACCESS问题
  9. dnf服务器的ini配置文件,dnf分辨率配置文件在哪 | 手游网游页游攻略大全
  10. IdPop3 出现 Max line length exceeded.的解决方法
  11. android中view手势滑动冲突的两种解决方法
  12. 视觉SLAM论文list
  13. SQL Server高级教程
  14. 覃小龙34岁生日记:结合趋势,发挥优势,方能百战不殆
  15. cache object script基本结构---Cache变量,变量名称,定义,特殊的变量
  16. 由浅入深的正则表达式教程,简单快速学习正则
  17. 深入理解最强桌面地图控件GMAP.NET --- 原理篇
  18. AI资源收集(持续更新)
  19. 算术平均 几何平均 平方平均 调和平均
  20. matlab 刷新图像,MATLAB三维画图、画线、动态刷新、不同视角、自动保存多张图像...

热门文章

  1. 为什么网卡名称从eth0变成了enp*s*
  2. GDAL插值使用示例
  3. golang使用http client发起get和post请求示例
  4. 《刀塔传奇》付费设计分析
  5. sonar不支持mysql_sonar-iOS的实践
  6. 【java学习之路】(java框架)011.SpringMVC入门
  7. 设计模式(一)六大原则
  8. 详解:hiveserver2的使用与介绍
  9. Python——数组(列表)的基本操作
  10. webbench 压力测试软件