Nuruddin Warsi Ответов: 2

Мне нужно вырваться из двух циклов сразу, как только я найду символ, присутствующий в строке s, которого нет в строке t


<pre>#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
	int i,j,count=0;
	char s[100],t[100];
	scanf("%s", s);
	scanf("%s", t);
	int s1=strlen(s);
	int t1=strlen(t);
	if(strlen(s)!=strlen(t))	
	{
		printf("-1");
	}
	else
	{
		for(i=0;i<strlen(s);i++)
		{
			for(j=0;j<strlen(t);j++)
			{
				if(s[i]==t[j])
				{
					if(i==j)
					{
						count=count+1;
					}
				}
			
			}
		}
		if(count>0)
		{
			printf("%d",count);
		}
		else
		{
			printf("-1");
		}
	}
	return 0;
}


Что я уже пробовал:

Я попытался найти каждый символ, используя 2 строки...но как только я получаю два неравных символа, мне нужно вырваться из 2 вложенных циклов и напечатать -1

2 Ответов

Рейтинг:
1

OriginalGriff

Простой способ: рефакторинг вашего кода так, чтобы циклы были в отдельной функции.
Затем вы можете использовать return чтобы выйти из всей функции и обоих циклов.


Рейтинг:
0

Patrice T

Цитата:
Мне нужно вырваться из двух циклов сразу, как только я найду символ, присутствующий в строке s, которого нет в строке t

Вы ошибаетесь.
Ты же знаешь что это кусок веревки s не находится в строке t только при сравнении в строке t выполняемый.
Иначе говоря, вы знаете, если символ не находится в строке t только после завершения внутреннего цикла.

Примечание: ваш код странный, и это не то, что он делает.
На самом деле, трудно понять, что делает код.