关于C语言字符串操作的几个题目
2012-10-06 22:09
597 查看
第一题是:写一函数,实现删除字符串str1中含有的字符串str2。这一题不难,但是有个 KMP优化算法,大家有兴趣可以查看资料看一下。
第二题是:给定的字符串A和B,输出A和B中的最大公共子串。本人的代码是:
本人又从网上看了别人写的算法,发现有几个操作字符串很方便的函数:如下
该算法其中的精髓就在于strstr()这个函数,在此学习了
第二题是:给定的字符串A和B,输出A和B中的最大公共子串。本人的代码是:
#include<stdio.h> #include<string.h> void UtMost_ComStr(char* s1,char* s2)//imagine: s1 is longer { int maxLength=0,length=0,i=0; char *p1=s1,*p1_1=s1,*p2=s2,*p2_2=s2;; char *maxStartAddr=s1; while(*p1!=0) { if(*p1==*p2) { length++; if(length>maxLength) { maxLength=length; maxStartAddr=p1_1; } p1++; p2++; } else if((*p1!=*p2)&& *p2!=0) { length=0; p1=p1_1; p2_2++; p2=p2_2; } else if(*p2==0) { length=0; p1_1=s1++; p1=p1_1; p2_2=s2; p2=p2_2; } } printf("Max Length is %d\n",maxLength); printf("The longest same string is:\n"); while(i<maxLength) { putchar(*maxStartAddr); i++; maxStartAddr++; } } void main() { char *s1="aocdfe"; char *s2="pmcdfa"; UtMost_ComStr(s1,s2); }
本人又从网上看了别人写的算法,发现有几个操作字符串很方便的函数:如下char *commanstring(char shortstring[], char longstring[])
{
int i, j;
char *substring=malloc(256);
if(strstr(longstring, shortstring)!=NULL) //如果……,那么返回shortstring
return shortstring;
for(i=strlen(shortstring)-1;i>0; i--) //否则,开始循环计算
{
for(j=0; j<=strlen(shortstring)-i; j++){
memcpy(substring, &shortstring[j], i);
substring[i]='\0';
if(strstr(longstring, substring)!=NULL)
return substring;
}
}
return NULL;
}
main()
{
char *str1=malloc(256);
char *str2=malloc(256);
char *comman=NULL;
gets(str1);
gets(str2);
if(strlen(str1)>strlen(str2)) //将短的字符串放前面
comman=commanstring(str2, str1);
else
comman=commanstring(str1, str2);
printf("the longest comman string is: %s\n", comman);
}
该算法其中的精髓就在于strstr()这个函数,在此学习了
相关文章推荐
- 关于C语言中字符串操作的几个函数的总结
- C语言面试必须会的几个字符串操作函数原型strcpy,strcmp,strlen,strcat
- 关于字符串和文件操作的几个函数
- C语言中关于字符串的操作(转)
- java 一道关于String字符串操作题目
- C语言:字符串、结构体中关于数组的几个问题
- C语言里面字符串操作是关于格式的参数
- 一道微软面试时碰到的,经典的,关于字符串操作的面试题目
- 关于几个字符串操作的函数
- 请求帮助 几个关于C语言的题目
- C语言关于字符串操作的安全问题
- 关于C语言的一个“巨大”发现~字符串长度的计算
- 深夜中,关于c语言的疑问:文件操作和输出。
- php入门学习知识点五 关于php数组的几个基本操作
- 黑马程序员——C语言之格式化输出与字符串操作
- 「算法精解_C语言描述」链表_关于链表特点的几个问与答
- 【C语言】字符串操作函数my_strcmp
- 实现C语言字符串操作的库函数
- C语言中关于链表的一些操作
- PAT考试乙级1050(C语言实现) (重点题目)(关于保留小数的坑)