Страницы

Translate

понедельник, 29 июля 2013 г.

Упражнение 2.5. Напишите функцию any(s1, s2)


Упражнение 2.5. Напишите функцию any(s1, s2), которая возвращает либо ту позицию в s1, где стоит первый символ, совпавший с любым из символов в s2, либо -1 (если ни один символ из s1 не совпадает с символами из s2). (Стандартная библиотечная функция strpbrk делает то же самое, но выдает не номер позиции символа, а указатель на символ.)

/*
 * Copyright 2013 Pavel <pavel@pavel-Ubuntu>
 */


#include <stdio.h>

int any(char s1[], char s2[]);

int main()
{
    char first[] = "Hello world!";
    char second[] = "plt";
    
    printf("first location: %d\n", any(first, second));
    return 0;
}

/*any(s1, s2)*/

int any(char s1[], char s2[])
{
    int i, j;
    for(j = 0; s2[j] != '\0'; j++)
    {
        for(i = 0; s1[i] != '\0'; i++)
            if(s1[i] == s2[j])
                return i;
    }
    return -1;
}

Результат:


Комментариев нет:

Отправить комментарий