POJ3753 根据关键字进行字符串拷贝【文本处理】
根据关键字进行字符串拷贝
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 根据关键字进行字符串拷贝【文本处理】相关推荐
- boost I 字符串与文本处理
目录 一.lexical_cast 与C语言.C++的对比 二.format 1.format类 2.格式化语法 三.string_ref 1.背景 2.boost::string_ref 3.rem ...
- js ZeroClipboard 拷贝文本到剪贴板
2019独角兽企业重金招聘Python工程师标准>>> 简述: 使用ZeroClipboard 在浏览器中需要拷贝文本到剪贴板 非IE浏览器不能直接 拷贝,所以使用ZeroClipb ...
- linux c strdup 字符串拷贝
#include <string.h> char *strdup(const char *s); 函数介绍: strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函 ...
- linux strcpy 用法,由Linux中管道的buffer,浅谈C语言中char类型字符串拷贝使用strcpy()和=赋值符号的区别...
今天在写父子进程用两个单向管道通信时,出现了错误: Segmentation fault (core dumped) 打开core文件发现: 附上源码: 1 #include 2 #include 3 ...
- 字符串拷贝函数memcpy()、strncpy()和snprintf()性能之比较
问题: 函数memcpy(dest, src, sizeof(dest)).strncpy(dest, src, sizeof(dest))和snprintf(dest, sizeof(dest), ...
- 【C 语言】字符串拷贝 ( 函数形参使用推荐方法 | 凡是涉及 修改指针指向 的操作一律创建新的 指针变量 执行 | 引入 辅助 局部 指针变量 )
文章目录 一.函数形参使用推荐方法 二.完整代码示例 一.函数形参使用推荐方法 在函数中 , 形参 中的 指针变量 , 不建议直接使用 ; 推荐 在 函数中 , 定义 局部 指针变量 , 接收 形参中 ...
- 【C 语言】字符串拷贝 ( 指针使用前判空 | while 空语句 )
文章目录 一.指针使用前判空 二.while 空语句 三.代码示例 一.指针使用前判空 在任何指针使用之前 , 要先进行判空 ; 尤其是 函数 形参 指针 , 使用前先 判断该 指针变量 是一个合法的 ...
- 【C 语言】字符串拷贝 ( 优化指针操作 )
文章目录 一.优化指针操作 二.优化指针操作 2 三.优化指针操作 3 四.优化指针操作 4 一.优化指针操作 在上一篇博客 [C 语言]字符串拷贝 ( 字符串拷贝业务逻辑代码 | 分离 主函数 与 ...
- 【C 语言】字符串拷贝 ( 字符串拷贝业务逻辑代码 | 分离 主函数 与 字符串拷贝 业务模型 )
文章目录 一.字符串拷贝业务逻辑代码 二.分离 主函数 与 字符串拷贝 业务模型 一.字符串拷贝业务逻辑代码 下面的代码 , 是 字符串 拷贝 最简单的代码 , 仅 使用 指针 遍历内存 , 实现了字 ...
最新文章
- 程序模拟抽奖流程图_一道与联欢会相关的概率统计题目的模拟仿真
- Linux新手生存笔记[2]——vim训练稿
- AtCoder Grand Contest 023 C - Painting Machines
- exe打包工具哪个最好_一键分发工具哪个最好用?这款30万人都在用,很优秀!...
- 【Android】No resource found that matches the given name 'Theme.Sherlock.Light.NoActionBar'
- linux c取网卡名称,在Linux下用c编程肿么获取网卡序列号和硬盘序列号
- python的优点有哪些-python语言有什么优势
- iPhone Objective-C EXC_BAD_ACCESS问题
- dnf服务器的ini配置文件,dnf分辨率配置文件在哪 | 手游网游页游攻略大全
- IdPop3 出现 Max line length exceeded.的解决方法
- android中view手势滑动冲突的两种解决方法
- 视觉SLAM论文list
- SQL Server高级教程
- 覃小龙34岁生日记:结合趋势,发挥优势,方能百战不殆
- cache object script基本结构---Cache变量,变量名称,定义,特殊的变量
- 由浅入深的正则表达式教程,简单快速学习正则
- 深入理解最强桌面地图控件GMAP.NET --- 原理篇
- AI资源收集(持续更新)
- 算术平均 几何平均 平方平均 调和平均
- matlab 刷新图像,MATLAB三维画图、画线、动态刷新、不同视角、自动保存多张图像...