#include <stdio.h>
int strlen(char *str)
{
int i;
for ( i = 0; str[i] != '/0'; i++ ); /* 用循环计算长度 */
return i;
}
/* ---------------------------------------- */
/* 在字符串中找寻子字符串 */
/* ---------------------------------------- */
int strindex(char *str,char *substr)
{
int end,i,j;
end = strlen(str) - strlen(substr); /* 计算结束位置 */
if ( end > 0 ) /* 子字符串小于字符串 */
{
for ( i = 0; i <= end; i++ )
/* 用循环比较 */
for ( j = i; str[j] == substr[j-i]; j++ )
if ( substr[j-i+1] == '/0' ) /* 子字符串字结束 */
return i + 1; /* 找到了子字符串 */
}
return -1;
}
/* ---------------------------------------- */
/* 主程式: 在字符串中找寻子字符串出现位置. */
/* ---------------------------------------- */
void main()
{
char string[100]; /* 字符串阵列宣告 */
char substring[100]; /* 子字符串阵列宣告 */
int result; /* 找寻结果 */
printf("请输入字符串 ==> ");
gets(string); /* 读取字符串 */
printf("请输入要搜索的子字符串 ==> ");
gets(substring); /* 读取子字符串 */
result = strindex(string,substring); /* 搜寻子字符串 */
if ( result > 0 )
printf("子字符串 %s 位置在 %d/n",substring,result);
else
printf("没有找到子字符串 %s/n",substring);
getchar();
}