用C语言求字符串的任意子串和某一字符串在另一字符串的位置 请一定要用C语言,并且可以在VC++6.0中实现

来源:百度知道 编辑:UC知道 时间:2024/06/06 05:46:59
请一定要用C语言,并且可以在VC++6.0中实现
注意是既成的系统,不要分开的小模块
需要写好的程序

在我的书上正好有你用的例子。。给你!
输入两个字符串a和b,判断字符串b是否是字符串a的字串。是,则输入字符串b在a中的位置(从1开始);否则输出“不是字串".
如:
字符串a为”ABCDEF"
字符串b为“CD”
则输出3
如果字符串b为“CE”则输出“不是字串”
源程序如下:
#include <stdio.h> /*使用了字符串输入输入出函数*/
void main()
{
char a[80],b[40];
int na, nb, i, j, flag;

gets(a);
gets(b);

na = strlen(a), nb = strlen(b); /*统计字符串长度*/
flag = 0; /*预置不是子串的标记变量值*/

for(i = 0; na - i >= nb; i++) /*当a中剩余字符数不足b长度退出循环*/
{
flag = 1; /*预置是子串的标记变量值*/
for(j = 0; j < nb; j++) /*比较b串和a中第i个字符开始的字符串*/
if(a[i+j] != b[j]) /*当前字符不同,置标记为0,退出循环*/
{
flag = 0; break;
}
if(flag == 1) /*如果标记值为1,表示找到字串*/
break; /退出 i。的外层for循环*/
}
if(f