[Мы решаем ваши проблемы с Си и Паскалем ]
Главная » Статьи » Задачи из заказов » Заказ 09.11.07

Написать и протестировать функцию STRP(str1, str2), которая определяет, встретился ли в строке str1 какой-нибудь символ из строки str2.
// 5.25
// Написать и протестировать функцию STRP(str1, str2), которая определяет,
// встретился ли в строке str1 какой-нибудь символ из строки str2.
// Функция должна возвращать номера позиций первых совпадающих символов или -1,
// если совпадений нет.

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.H>

int* strp(char* str1, char* str2)
{
    int len1 = strlen(str1);    
    int len2 = strlen(str2);    
    int* res = (int*)malloc(sizeof(int) * len2);
    int i, j;
    for (i = 0; i < len2; i++)
    {
            j = 0;
        while (j < len1 && str1[j] != str2[i])
            j++;
        if (str1[j] == str2[i])
            res[i] = j + 1;
        else
            res[i] = -1;
    }
    return res;
}

void main()
{
    clrscr();

    char ans, *str1, *str2;
    int *res, len, i;

    do
    {
        printf("Vvedite stroku str1\n");
        gets(str1);

        printf("Vvedite stroku str2\n");
        gets(str2);

        printf("Resultat raboti functii:\n");
        res = strp(str1, str2);

        len = strlen(str2);

        for (i = 0; i < len; i++)
            printf("%d ", res[i]);
        printf("\n");

        printf("Esho raz?(Y/N)\n");
        ans = getch();
        printf("%c\n", ans);

        free(str1);
        free(str2);
        free(res);
    }
    while (ans == 'Y' || ans == 'y');
}

Категория: Заказ 09.11.07 | Добавил: solver (09.11.2007)
Просмотров: 1345