Member 13887543 Ответов: 0

Как создавать подстроки и сравнивать их, когда создаваемые подстроки зависят от количества пробелов в родительской строке


вопрос в том, чтобы создать подстроки строки, Когда мы сталкиваемся с пространством в ней.

Вход и выход
если входной строки, как "рам Радж", то результат должен быть 3, а все 3 подстроки("ОЗУ","Раджу","является") бывают разные и если входной сигнал является как "оперативная память ОЗУ", то на выходе должно быть 2 причины есть только две разные подстроки "баран" и "есть".

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

это моя строка кода для решения проблемы.

но я не могу увеличить счетчик с -1.
ЗАПИСКА
я запустил счетчик с -1, потому что когда я сравниваю подстроки в первый раз, то значение k наверняка не будет равно 0, чтобы довести счетчик до нуля, я сделал это, и из-за моей строки кода я должен сравнить e и d, прежде чем копировать d в e только в первый раз.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
	int t,i=0,j,k,count=-1,l;
	char s[100],d[100],e[100];
	scanf("%d",&t);
	while(t>0)
	{
	 gets(s);
	 l=strlen(s);
	 //strcpy(e,"klo");
	 while(i<l)
 {
	 while((i<l)&&(s[i]==' '))
	 {i++;}
	 j=0;
	 while((i<l)&&(s[i]!=' '))
	 {
	     d[j]=s[i];
	     i++;
	     j++;
	 }
	 k=strcmp(e,d);
	 if(k!=0)
	 {count++;}
	 strcpy(e,d);
}
	printf("%d",count);
	t--;
	}
	return 0;
}

Member 13887543

обновленный код
не знаю почему но он показывает ошибку сегментации если я увеличу значение выше 6 в этом цикле в то время как(i<6)......для значений меньше 7 он работает нормально


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
	char s[100],d[100],e[100];
	 long int g=0,l,i=0,j,k;
     gets(s);
     l=strlen(s);
     printf("%d\n",l);
  while(i<6)
  {
      while(s[i]==' ')
	 {i++;}
	 j=0;
      while(s[i]!=' ')
	 {
	     d[j]=s[i];
	     i++;
	     j++;
	 } 
	 d[j]='\0';
	 k=strcmp(d,e);
	if(k!=0)
	g++;
	printf("%d\n",g);
	 puts(d);
  }	 

	return 0;
}

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

0 Ответов