Программа Си ++. Можно ли из букв, входящих в А, составить В?


//Даны две строки А и B. Составьте программу,
//проверяющую, можно ли из букв, входящих в А, составить В
//(буквы можно использовать не более одного раза и можно переставлять).
//Например, А: ИНТЕГРАЛ; В: АГЕНТ — составить можно; В: ГРАФ -нельзя.
#include
#include
#include
#include

void main()
{
clrscr();
int i=0,p=0,n=0,dlina=0,dlina1=0;
char str[100], str1[100];
for(i=0;i<100;i++) //обнуляем строку {str[i]=NULL;str1[i]=NULL;} printf("Введи строку A: "); scanf("%s",&str); printf("Введи строку B: "); scanf("%s",&str1); dlina1=strlen(str1); dlina=strlen(str); for(i=0;str1[i]!=NULL;i++)//перебирает одну строку for(p=0;str[p]!=NULL;p++)//перебирает вторую строку { if(str1[i]==str[p])//сравнивает букву первой строки с буквой второй строки {n++; str[p]='*'; p=dlina-1;}//удаляет букву, кторая уже была задействована, чтобы не задейвствовать ее потом повторно } if(dlina1==n)//сравнивает, если все буквы одной строки есть во второй строке (за что отвечают соответственно счетчики), то выводит что можно составить printf("Yes\n"); else printf("No\n"); getch(); }

Загрузка...