如何比较一个字符串从中间(或其他点,但不是开始)到另一个字符串? 像我有一个字符串 str1 [] =“我是天才”; 现在,如果我想找到一个单词,我应该如何比较它与单词?例如这个词是我。 这里是我did.Its有点笨,但完美的作品:d比较字符串(来自其他索引而不是0)
#include<stdio.h>
#include<string.h>
void print(char string[]);
int main()
{
int i;
char string1[20];
printf("Enter a string:");
gets(string1);
print(string1);
return 0;
getch();
}
void print(char string[])
{
int i,word=1,sum=0,x;
for(i=0; ;i++)
{
sum++;
if(string[i]==' ')
{
printf("Word#%d:%d\n",word,sum-1);
sum=0;
word++;
}/* if ends */
if(string[i]=='\0')
{ // program sai kaam karnay k liye ye code yahan bhi paste hona chahyey
printf("Word#%d:%d\n",word,sum-1);
sum=0;
word++;
break;
}
}/* for ends*/
}
请注意,找到一个字符串中的单词不是用字符串比较来执行,而是用有限状态机来执行(http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80 %93Pratt_algorithm) – 2010-07-15 11:05:51