POJ 3753 根据关键字进行字符串拷贝
2013-05-20 22:25
197 查看
[b]根据关键字进行字符串拷贝[/b]
Description
把源字符串拷贝到目的字符串,如果指定关键字,则以该关键字结束(不包括关键字本身),如果拷贝失败,则得到空串。
具体要求:实现如下函数原型SafeStrcpy2KeyWord(),并在代码中调用该函数实现上述功能。该函数的实现要考虑各种可能的参数取值,以确保程序不出现崩溃。
返回值:所拷贝的字符串长度。如果拷贝失败,则返回0。
Input
输入包含多组数据,以EOF结束
每组数据第一行为不含空格的源字符串,长度小于256;接下来的一行或多行都是关键字串(长度小于16),一直到END结束。“NULL”表示关键字串为空,此时输出的拷贝后的长度应为0,拷贝后的字符串为空串(也用”NULL”表示,见下文)。
Output
对于每组数据输出拷贝的长度和拷贝后的目的字符串,以空格分隔。如果该目的字符串为空,则用”NULL”表示。
Sample Input
Sample Output
[C]
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 4633 | Accepted: 1021 |
把源字符串拷贝到目的字符串,如果指定关键字,则以该关键字结束(不包括关键字本身),如果拷贝失败,则得到空串。
具体要求:实现如下函数原型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 哎,最近总刷水题…… 又忘了有多钟测试数据,要用while(scanf()); 以后把所有的都写成这样吧,被坑好多次了T^T 这道题要注意的就是,如果关键字是"NULL",则输出"0 NULL";如果关键字在source串中没有,则输出源字符串;如果还有,那就是……有多组测试数据……
#include<stdio.h> #include<string.h> int main() { int i,j,t,m,source_len,key_len; char source[300],dest[300],key[300]; while(scanf("%s",source)==1) { getchar(); source_len=strlen(source); while(1) { gets(key); if(!strcmp(key,"END")) break; else if(!strcmp(key,"NULL")) printf("0 NULL\n"); else { key_len=strlen(key); for(i=0,t=source_len-key_len;i<=t;i++) { if(strncmp(&source[i],key,key_len)) dest[i]=source[i]; else { dest[i]='\0'; break; } } if(i>t) for(;i<=source_len;i++) dest[i]=source[i]; if((t=strlen(dest))) printf("%d %s\n",t,dest); else printf("0 NULL\n"); } } } return 0; }
[C]
相关文章推荐
- poj 3753 根据关键字进行字符串拷贝
- POJ 3753 根据关键字进行字符串拷贝 G++
- POJ 3753 根据关键字进行字符串拷贝(水题)
- pku 3753 根据关键字进行字符串拷贝 解题报告
- [编程练习与总结2] 根据关键字进行字符串拷贝
- 根据字符串对字符串进行分割
- [SQL]根据刚刚插入数据的 ID 向另外一张表插入数据(插入的其他字段数据需要对字符串进行分析)
- 一种根据关键字进行分类的文本分类算法
- 真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
- 利用CS_BOM_EXPL_MAT_V2 展单BOM,根据排序字符串进行组件分配
- 使用关键字对数组进行模糊查找;对一维字符串数组进行排序
- jstl根据字符串进行判断
- 一种根据关键字进行分类的文本分类算法
- 根据文本对输入的字符串进行加密解密操作
- 真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
- 根据字符串进行宽高自适应
- 赫夫曼树(一),对字符串中的字符出现频率进行设置权,并且根据权大小进行排序
- MySQL数据库,根据传入的字符换进行切割,并获得指定位置被切割的字符串。
- 查询时根据字符串进行整数排序
- bat 根据文件名截取字符串,进行移动文件,复制文件