如何比較一個字符串從中間(或其他點,但不是開始)到另一個字符串? 像我有一個字符串 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