Как создавать подстроки и сравнивать их, когда создаваемые подстроки зависят от количества пробелов в родительской строке
вопрос в том, чтобы создать подстроки строки, Когда мы сталкиваемся с пространством в ней.
Вход и выход
если входной строки, как "рам Радж", то результат должен быть 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
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.