На главную страницу

Решения к упражнениям из книги "Язык программирования С" Б. Керниган и Д. Ритчи

Упражнение 2.4.


Напишите альтернативную версию функции squeeze(s1, s2), которая бы удаляла из строки s1 все символы, встречающиеся в строке s2.
----------
/* Exercise 2.4 from "The C programming language" book by K&R */

#include <stdio.h>

/* deletes all strings s2 in s1 */
void squeeze(char s1[], char s2[])
{
	int i, j, k;
	
	for (j = i = 0; s1[i] != '\0'; i++) {
		s1[j++] = s1[i];
		for (k = 0; s2[k] != '\0'; k++)
			if (s1[i] == s2[k])
				j--;
	}
	s1[j] = '\0';
}

int main(void)
{
	char s1[] = "abcdef";
	char s2[] = "cd";
	squeeze(s1,s2);
	printf("%s\n", s1);
	return 0;
}
	
----------