55 lines
1.4 KiB
C
55 lines
1.4 KiB
C
/*-----------------------------------------------------------------------
|
|
【程序设计】
|
|
-----------------------------------------------------------------------
|
|
定义一个函数判断一个字符串是否是另一个字符串的子字符串,要求用指针实现。
|
|
输入输出如下:
|
|
【请输入第一个字符串:】abcdefg1234qwert
|
|
【请输入第二个字符串:】4q
|
|
字符串'4q'是字符串'abcdefg1234qwert'的子字符串
|
|
-------------------------------------------------------------------------
|
|
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
|
|
------------------------------------------------------------------------*/
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
// 函数声明,用于判断子字符串
|
|
int isSubstring(char *str1, char *str2);
|
|
int main()
|
|
{
|
|
char str1[100], str2[100];
|
|
printf("【请输入第一个字符串:】");
|
|
gets(str1);
|
|
printf("【请输入第二个字符串:】");
|
|
gets(str2);
|
|
if (isSubstring(str1, str2))
|
|
{
|
|
printf("字符串'%s'是字符串'%s'的子字符串\n", str2, str1);
|
|
}
|
|
else
|
|
{
|
|
printf("字符串'%s'不是字符串'%s'的子字符串\n", str2, str1);
|
|
}
|
|
return 0;
|
|
}
|
|
int isSubstring(char *str1, char *str2)
|
|
{
|
|
int len1 = strlen(str1);
|
|
int len2 = strlen(str2);
|
|
int i, j;
|
|
/**********Program**********/
|
|
for(i=0;i<len1;i++){
|
|
j=0;
|
|
while(str1[i] == str2[j] && str2[j] != '\0'){
|
|
i++;
|
|
j++;
|
|
}
|
|
if(j != 0){
|
|
i-=j;
|
|
}
|
|
if(str2[j] == '\0'){
|
|
return 1;
|
|
}
|
|
}
|
|
/********** End **********/
|
|
return 0;
|
|
}
|