試圖編寫該函數檢查word
中的所有字母是否出現在s
中,順序相同。如果一個字母在word
中出現多次,那麼它在s
中應至少出現 多少次。字符串(C) - 比較兩個字符串的字母
例如:
containsLetters2("abcdef", "aaabbb")
返回0,因爲有字母「a」後面的字母「b」的三次出現的無三次出現。
此:
containsLetters2("axaxxabxxbxbcdef","aaabbb")
返回1
我不明白什麼是錯在我的代碼:
int containsLetters2(char *s, char *word)
{
int j,i, flag;
long len_word, len_s;
len_s=strlen(s);
len_word=strlen(word);
for (i=0; i<=len_word; i++) {
flag=0;
for (j=0; j<=len_s; j++) {
if (*word==*s) {
flag=1;
word++;
break;
}
s++;
}
if (flag==0) {
break;
}
}
return flag;
}
int main() {
char string3[MAX_STRING] , string4[MAX_STRING];
printf("Enter 2 strings for containsLetters2\n");
scanf ("%s %s", string3, string4);
printf("Return value from containsLetters2 is: %d\n",containsLetters2(string3,string4));
return 0; }
它應該是這樣的for循環 - > 1) - > IĴ
user2760375
見也是[指向字符串C](http://stackoverflow.com/questions/21004727/pointers-to-string-c)的一個相關的,但截然不同的問題。 –
你會如何處理''aababbb','aaabbb''?有3個,其次是3個B;中間體b是否阻止匹配工作? –