字符串中的位置(即,第二个字符串第一个字符在第一个字符串中出现的位置)
这道题目我看了一下,只是知道在代码部分首先要进行定义两个字符串,然后由用户输入字符串,再将两个字符串进行比较,问题是如果知道了第二个字符串的第一个字符在第一个字符串中出现了,那怎么用代码表示?谢谢各位前辈!!!
----------------解决方案--------------------------------------------------------
看数据结构中的模式匹配
----------------解决方案--------------------------------------------------------
KMP 算法
----------------解决方案--------------------------------------------------------
楼上的前辈,不好意思,我现在问题就出在这,我也知道需要匹配,但是如何用代码表现出来?
----------------解决方案--------------------------------------------------------
我写过一个字符串替换的程序,应该和你这算法差不多的啊。
不怎么难的吧,自己试试看哦
----------------解决方案--------------------------------------------------------
最简单的就是 一个一个比较 不等 长串加一 在比较 到比较完为止
----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <string.h>
void main()
{
char num1[20],num2[20];
printf("请输入第一个字符串的值: \n");
gets(num1);
printf("请输入第二个字符串的值: \n");
gets(num2);
printf("结果: \n");
strcmp(num1,num2);
if(strcmp(num1,num2)>0)
{
printf("1");
}
if(strcmp(num1,num2)==0)
{
printf("0");
}
if(strcmp(num1,num2)<0)
{
printf("-1");
}
printf("\n");
}
----------------解决方案--------------------------------------------------------
修改一下就可以了。
呵呵。
好象发错了
----------------解决方案--------------------------------------------------------
一一比较 定义2个字符串 用第一个字符串 字母去比叫第2个
char num1[20],num2[20];
printf("请输入第一个字符串的值: \n");
gets(num1);
printf("请输入第二个字符串的值: \n");
gets(num2);
int i;
for (i=0;i<20;i++)
if (*(num1+i)!=*(num2+i)) break;
printf ("no\n");
else printf ("yes\n")
}
----------------解决方案--------------------------------------------------------
9楼滴要在仔细考虑下
----------------解决方案--------------------------------------------------------