У меня есть две функции rmdup и rmvow, когда я выполняю эти функции в изоляции, они работают отлично, но когда они вместе в программе, они вообще не работают?Две функции работают изолированно, но не вместе
int rmdup (char name[])
{
char nodup[20] = {''\0''};
int l = strlen(name);
int i = 0, j, k = 0;
while (i < l)
{
j = i + 1;
if (name[i] == name[j])
{
nodup[k] = name[i];
i+2;
while(nodup[k] == name[i])
{
i++;
}
k++;
}
else
{
i++;
}
nodup[k] = ''\0'';
}
strcpy(name, nodup);
}
Вышеупомянутые работы изолированы, как показано ниже.
int rmvow (char name[] )
{
char novow[20] = {''\0''};
int l = strlen(name);
int i = 0, j = 0;
while (i < l)
{
if (name[i] == ''a'' ||
name[i] == ''e'' ||
name[i] == ''i'' ||
name[i] == ''o'' ||
name[i] == ''u'')
{
i++;
}
else
{
novow[j] = name[i];
i++;
j++;
}
novow[j] = ''\0'';
}
strcpy(name, novow);
}
Пожалуйста, научитесь правильно отступать от своего кода. Это облегчает чтение и отслеживание потока исполнения. Вы не показали, как вы пытаетесь «использовать их вместе в программе», так как нам следует объяснить, почему они не работают? –
Непонятно, что вы можете подразумевать под * «когда они вместе» * или даже * «они вообще не работают» *. Предоставьте код, в котором вы их используете, объясните, когда каждый * должен * и фактические результаты. Ваша компоновка кода в лучшем случае нетрадиционная, и очень трудно читать - если вы хотите, чтобы другие читали ваш код и помогали, вы должны сделать это как можно проще. – Clifford
На каком языке это и почему он помечен 'strcpy'? Это уместно? Что такое '' '\ 0''', '' 'a''' и т. Д.? Они не компилируются как код C, который в этом случае выглядит иначе. – Clifford