#include <stdio.h>
/* Б. Керниган, Д. Ритчи. Язык программирования Си */
/* Упражнение 2.4. */
/* Напишите альтернативную версию функции squeeze(s1, s2), */
/* которая бы удаляла из строки s1 все символы, встречающиеся */
/* в строке s2. */
/* 13 сентября 2010, Ковров */
void squeeze(char s1[], const char s2[]);
int main(void)
{
char s1[]="we must study C language";
char s2[]="sam";
printf("s1=%s, s2=%s\n", s1, s2);
squeeze(s1, s2);
printf("s1=%s\n", s1);
return 0;
}
void squeeze(char s1[], const char s2[])
{
int i, j, k;
for (i=0, j=0; s1[i]!='\0'; ++i)
{
for (k=0; s2[k]!='\0' && s1[i]!=s2[k]; ++k)
;
if (s1[i]!=s2[k])
s1[j++]=s1[i];
}
s1[j]='\0';
}
s1=we must study C language, s2=sam
s1=we ut tudy C lnguge
#include <stdio.h>
void squeeze_ptr(char *s1, char *s2);
int main(void)
{
char s1[]="we must study C language";
char *s2="sam";
printf("s1=%s, s2=%s\n", s1, s2);
squeeze_ptr(s1, s2);
printf("s1=%s\n", s1);
return 0;
}
void squeeze_ptr(char *s1, char *s2)
{
int i, j, k;
for (i=0, j=0; *(s1+i)!='\0'; ++i)
{
for (k=0; *(s2+k)!='\0' && *(s1+i)!=*(s2+k); ++k)
;
if (*(s1+i)!=*(s2+k))
{
*(s1+j)=*(s1+i);
j++;
}
}
*(s1+j)='\0';
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.