Учитывая строку массива, я должен ввести слово и найти вхождения слова в строке, однако я не могу ввести слово, для которого мне нужно найти это событие. Я не могу использовать указатели, поскольку он не был охвачен программой. Помощь будут оцененыЧисло вхождений в строке
#include <stdio.h>
#include <strings.h>
int main()
{
char sentence[100],word[20],temp[20];
int i=0,j=0,occurrences=0;
scanf("%[ ^\n]s",sentence);
printf("Enter the word to be searched:\n");
fgets(word,20,stdin);
while(sentence[i]!='\0')
{
while(sentence[i]!=' '&&sentence[i]!='\0')
{
temp[j++]=sentence[i];
i++;
}
temp[j]='\0';
if((strcmp(temp,word))==0)
occurrences++;
if(sentence[i]==' ')
j=0;
}
printf("Number of Occurrences of the word are %d",occurrences);
return 0;
}
... и ваша точка? Содержит ли этот код? Что оно делает? Что вы хотите сделать вместо этого? –
Я несколько вещей, прежде чем идти глубже. 1.- Я рекомендую прочитать о [safe scanf] (http://stackoverflow.com/questions/1621394/how-to-prevent-scanf-causing-a-buffer-overflow-in-c), у вас может быть потенциал переполнение там. 2. - Компиляция вашего кода, он сбрасывает «неизвестный» strcmp. Посмотрите, используете ли вы правильные заголовки. – Joel
Вы * * с помощью указателей, так используется ваше использование 'strcmp' незаконно? Если нет, вы можете использовать 'strstr'. –