Написать функцию, которая ищет символ одной строки, отсутствующий в другой - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Написать функцию, которая ищет символ одной строки, отсутствующий в другой (char *strspn(char *s1, char *s2). Надо использовать подпрограммы и указатели,Помогите решить,Сам пробывал прога не запускается. Программа нужна на языке С.
#include<stdio.h>
#include<conio.h>
#define max 10
char *strspn(char *s1, char *s2)
{ char str3[max];
int i=0;
  while(*s2!='\0')  {if(*s1!=*s2)  (*s2)++    ;
else  {str3[i]=(*s2);i++;}}
  return *str3;
             }
 main()
{ char str1[80];
char str2[80];
char str3[80];
  puts("Vvedite stroki:\n");
  gets(str1);
  gets(str2);
  puts("Rezultat:\n");
  printf(" %s",*strspn(str1,str2));
  getch();
}

Решение задачи: «Написать функцию, которая ищет символ одной строки, отсутствующий в другой»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
/*
    ищет символ одной строки, отсутствующий в другой
*/
 
/* findExclusive возвращает указатель на первый символ строки a, которого нет в строке b. Если таких нет, вернёт NULL */
char *findExclusive(const char *a, const char *b){
    if ( !a || !*a || !b || !*b )
        return NULL;
    for ( ; *a; a++ )
        if ( !strchr(b, (unsigned int)*a) )
            return (char*)a;
    return NULL;
}
 
int main(void){
    char str1[BUFSIZ], str2[BUFSIZ], *p;
    
    printf("First string: ");
    if ( !fgets(str1, BUFSIZ, stdin) )
        return 1;
    printf("Second string: ");
    if ( !fgets(str2, BUFSIZ, stdin) )
        return 1;
    printf("Exclusive symbols in first string:\n");
    for ( p = findExclusive(str1, str2); p != NULL; p = findExclusive(p + 1, str2) )
        printf("%c ", *p);
    printf("\n");
    
    return 0;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Функция findExclusive принимает две константные строки и возвращает указатель на первый символ строки a, которого нет в строке b. Если таких нет, возвращает NULL
  3. В функции main считываем две строки с помощью функции fgets
  4. Выводим первую строку
  5. Инициализируем цикл, который будет искать отсутствующие символы в первой строке второй строки
  6. Если найден символ, выводим его и продолжаем поиск следующего символа
  7. Если поиск завершен, выводим результат

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы