所以我想在K & R做練習練習。它想讓我做一個類似於擠壓的功能,我不知道它有什麼問題。我的桌子已經檢查過了。我不想在網絡上找到解決方案,我想明白爲什麼我的代碼不會工作。用戶定義的功能類似於擠壓()
//removes characters that are present in both strings
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define MAXLTR 15
void removesame(char s1[],char s2[]);
int main(void)
{
char string1[MAXLTR],string2[MAXLTR];
printf("Enter a string: ");
scanf("\n%s",&string1);
printf("\nEnter the letters/words to be removed: ");
scanf("\n%s",&string2);
removesame(string1,string2);
printf("\nFinal output: %s",string1);
getch();
}
void removesame(char s1[],char s2[])
{
char temp[MAXLTR];
int arraycntr,comparecntr;
for(comparecntr = 0; comparecntr < MAXLTR; comparecntr++)
{
for(arraycntr = 0;arraycntr < MAXLTR;arraycntr++)
{
if(s1[arraycntr] == s2[arraycntr])
s1[arraycntr] == '\t';
}
}
comparecntr = 0;
for(arraycntr = 0; arraycntr < MAXLTR; arraycntr++)
{
if(s1[arraycntr] != '\t')
{
temp[comparecntr] = s1[arraycntr];
++comparecntr;
}
}
for(arraycntr = 0; arraycntr < MAXLTR; arraycntr++)
s1[arraycntr] = '\0';
for(arraycntr = 0;arraycntr < MAXLTR; arraycntr++)
s1[arraycntr] = temp[arraycntr];
}
BTW不介意的#include我只是把它放在那裏,因爲我用的strcpy()來查看如果最後一部分是錯誤的。 –
latenightcode
如果你的編譯器沒有給出s1 [arraycntr] =='\ t'的警告;'它可能是非常糟糕或者配置不正確。你應該得到一個警告,說「空聲明」,「代碼沒有作用」等。 – Lundin