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

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

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


Напишите функцию any(s1,s2), возвращающую номер первой позиции в строке s1, в которой находится какой-либо из символов строки s2, либо -1, если строка s1 не содержит ни одного символа из s2. (Стандартная библиотечная функция strpbrk делает то же самое, но возвращает указатель на найденную позицию.)
----------
/* Exercise 2.5 from "The C programming language" book by K&R */

#include <stdio.h>

/* any - seek first position of any symb from s2 in s1 */
int any(char *s1, char *s2)
{
	int i, k;
	for (i = 0; s1[i] != '\0'; i++)
		for (k = 0; s2[k] != '\0'; k++)
			if (s1[i] == s2[k])
				return i;
	return -1;
}

int main(void)
{
	char s1[] = "yoyoajyujyujyc";
	char s2[] = "bc";
	printf("%d\n", any(s1,s2));
	return 0;
}
	
----------