⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3-3-2.c

📁 2005软件工程师考试下午编程题源代码
💻 C
字号:
/*中国系统分析员顾问团,http://www.csai.cn*/
/*程序员下午考试指南书籍源码*/

#include <stdio.h>

int strlen(char *s){
char * t = s;
     	while (*t++);
    		return t-s-1;
}

int commstr(char *str1,char *str2, int *sublen){
	char *s1,*s2;
    		int count = 0, len1, len2 , k, j, i, p;
    		len1 = strlen(str1);
    		len2 = strlen(str2);
    		if (len1 > len2){
s1 = str1; s2 = str2;
}
    		else {
len2 = len1; s1 = str2; s2 = str1;
}
    		for(j = len2; j > 0; j--) { /* 从可能最长子串开始寻找  */
       		for(k = 0; k + j <= len2; k++){  /*  k 为子串 S2 的开始位置  */
          		for( i = 0; s1[i + j - 1] != '\0'; i++){  /* i 为子串 s1 的开始位置  */
              		/*  s1 的子串与 S2 的子串比较  */
               		for (p = 0; p < j && s1[i+p] == s2[k+p]; p++);
                  		if (p == j ) { /*  如果两子串相同   */
                      		for (p = 0; p < j ; p++)  /* 输出子串 */
                         	printf("%c", s2[k + p]);
                       		printf("\n");
                       		count++;  /* 计数增   */
                     	}
            		}
         		}
         		if (count > 0 ) break;
      	}
    		*sublen = (count > 0) ? j : 0 ;
    		return  count;
}

main()
{
	char a1[]={'a','b','c','a','d','\0'},a2[]={'a','c','c','a','b','c','\0'};
	int c=0;
   commstr(a1,a2,&c);
   printf("Sublen=%d",c);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -