试图编写该函数检查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是否阻止匹配工作? –