strstr函数的被查找字符串与查找到的字符串是互相影响的,同时可以只用i--控制循环不变
2015-07-20 20:59
337 查看
这题刚开始写出来之后一直不知道哪里错了,就一部一部的dbug,最后终于发现原来strstr的被查找字符串改变会影响查找到的
字符串,感觉自己写的不够简便,查了一些别人的,看到别人是用strstr函数的查找到的字符串会影响被查找的字符串的性质来写的
,代码中注释部分是用被查找影响查找字符串的性质做的,比较麻烦,下面是用其逆性质来写的,比较简单,另外注意此题使用i--控制
循环不变而不需要使用死循环:
讲解下strstr的性质:注释部分是输出
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cctype>
#include<cstdlib>
#include<algorithm>
#include<set>
using namespace std;
int main()
{
char s[50]="abcdfg";
char s1[50]="abc";
char *p=strstr(s,s1);
strcat(s,"higk");
printf("%s\n",p);//abcdefghigk
strcat(p,"lmn");
printf("%s\n",s);//abcdefghigklmn
return 0;
}
题目代码:
字符串,感觉自己写的不够简便,查了一些别人的,看到别人是用strstr函数的查找到的字符串会影响被查找的字符串的性质来写的
,代码中注释部分是用被查找影响查找字符串的性质做的,比较麻烦,下面是用其逆性质来写的,比较简单,另外注意此题使用i--控制
循环不变而不需要使用死循环:
讲解下strstr的性质:注释部分是输出
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cctype>
#include<cstdlib>
#include<algorithm>
#include<set>
using namespace std;
int main()
{
char s[50]="abcdfg";
char s1[50]="abc";
char *p=strstr(s,s1);
strcat(s,"higk");
printf("%s\n",p);//abcdefghigk
strcat(p,"lmn");
printf("%s\n",s);//abcdefghigklmn
return 0;
}
题目代码:
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<cctype> #include<cmath> #include<set> using namespace std; char s[20][100],s1[20][100],s2[300]; int main() { int t; while(cin>>t&&t) { getchar(); for(int i=0;i<t;i++) { gets(s[i]); gets(s1[i]); } gets(s2); for(int i=0;i<t;i++) { /* while(1) { if(strstr(s2,s[i])!=NULL) { char *ss; ss=strstr(s2,s[i]); int len=strlen(s2)-strlen(ss); char sst[300]; strcpy(sst,s2); if(len!=0) { sst[len]='\0'; strcat(sst,s1[i]); strcat(sst,ss+strlen(s[i])); } else { sst[0]='\0'; strcat(sst,s1[i]); strcat(sst,ss+strlen(s[i])); } strcpy(s2,sst); } else break; }*/ char *p=strstr(s2,s[i]); char temp[300]; if(p!=NULL) { strcpy(temp,p+strlen(s[i])); strcpy(p,s1[i]); strcpy(p+strlen(s1[i]),temp); i--; } } printf("%s\n",s2); } return 0; }
相关文章推荐
- 银联加密算法
- [c] HDOJ1053 哈夫曼树的应用
- 1015. Reversible Primes (20)
- GNU LIBC源码学习之strcmp
- ORACLE管理-查看拥有DBA角色的用户
- 12天学好C语言——记录我的C语言学习之路(Day 6)
- jdfz-2764 二维LIS
- 12天学好C语言——记录我的C语言学习之路(Day 6)
- Lightoj 1020 - A Childhood Game (博弈)
- 黑马程序员——JAVA基础学习之其他对象
- NYOJ 2 括号是否配对
- C语言学习(二)
- 武汉权冠笔试题
- 任笑萱 2015/7/7 个人文档
- 8-3.基数排序详解
- 暑假集训第二周——递推 楼梯走法 AC女之杀手 小蜜蜂 骨牌铺方格 EOF排列
- 来京学习第7天(除去周末2天)
- DSP28335软件实验研究--DA_AD模块功能详解
- [LeetCode][Java] Binary Tree Level Order Traversal II
- NSString练习