1
我试图创建一个挤压函数,删除字符串s1
中与字符串s2
中任何字符匹配的每个字符。删除字符串中与另一个字符串中的任何字符匹配的字符
当我编译时,它不会说有任何错误,但是由于某些原因没有打印出来。有人能告诉我我在这里做错了什么吗?
void squeeze(char s1[], char s2[]);
int main() {
char s1[] = "abc";
char s2[] = "cde";
squeeze(s1, s2);
printf("%s\t%s", s1, s2); // nothing is being printed...
}
void squeeze(char s1[], char s2[])
{
int i,j,k;
/* i is original s1 index
* j is s2 index
* k is new s1 index
*/
for (i = k = 0; s1[i] != '0'; i++){
for (j = 0; s2[j] != '0'; j++){
if (s1[i] == s2[j])
s1[k++] = s1[i];
}
}
s1[k] = '\0';
}
'!='\ 0''就是你想要的。 “0”是数字零,而不是nul终止符。 – user3386109
我弄脏你的意思是在循环中使用''\ 0''而不是''0''。你的程序可能崩溃了。 –
谢谢你做了这个诀窍:) – ALKI