Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2015, 15:21   #1
imbaTapac
 
Регистрация: 25.05.2015
Сообщений: 8
По умолчанию Найти количество разных слов в СИ

Есть код,который считает количество слов
Код C

Код:
printf("\nВведите строку =>");
gets(s1);
str=strtok(s1,s5);
do{
     k++;
str = strtok (NULL,s5);             }
while(str!=NULL)    ;                
 printf("Количество слов=%d",k);
Как сделать,что бы еще считало количество разных слов?

Последний раз редактировалось Stilet; 25.05.2015 в 16:12.
imbaTapac вне форума Ответить с цитированием
Старый 25.05.2015, 16:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я думаю что нужно строку развернуть в массив слов, а потом по массиву делать проход и проверять количество.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.05.2015, 16:17   #3
imbaTapac
 
Регистрация: 25.05.2015
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я думаю что нужно строку развернуть в массив слов, а потом по массиву делать проход и проверять количество.
Как это сделать(развернуть на массив)?

Код:
for(int i=0;i<=strlen(s1);i++){
if (s1[i]==' ';)
а дальше как?

Просто прикол в том,что я должен это сделать без ввода строки,у меня есть файл в котором записаны слова и мне нужно посчитать количество разных слов
Код:
#include <cstdlib>
#include <string>
#include <iostream>
#include <conio.h>
#include <stdio.h>

using namespace std;
string *s1 = new string[1000]; 
string *s2 = new string[1000]; 
FILE *ptrF;
char stroka [80]; 
int e,count=0,i,j,l,k=0; 


  


void read() {ptrF=fopen("Kursova.txt","r");

if (ptrF==NULL) {
   printf("Error opening file!\n");}

for (i=0; i<=999; i++)   
    {
    if (fscanf(ptrF,"%s",stroka)==EOF) break;
    s1[i]=stroka;
    }

fclose (ptrF);}


void alg1(){
	
    system("cls");
    k=0; 
    for (i=0; i<=999; i++){ 
       
        l=0; 
        for (j=0; j<=k; j++){ 
            if(s1[i].compare(s2[j])==0){
                 l=1;
                 }
            }
        if(l==0){
            s2[k]=s1[i];
            k++;
            }
    }
printf("Всего разных слов : %d\n",k);
getch();
}


int alg2(){

 
printf("\n количество: %d",k);
 


getch();
}








int main(int argc, char *argv[])
{   
    int a;
	setlocale(LC_ALL,"Russian");
	while(a!=4){
    system("cls");            
    printf("1.Алгоритм #1\n");
    printf("2.Алгоритм #2\n");
    printf("3.Алгоритм #3\n");
    printf("4.Выход\n");
    scanf("%d",&a);
    if (a==1){read();alg1();}
	if(a==2){;}}
	
getch();
	
}
1 алгоритм у меня есть,а как сделать этот я не знаю

Последний раз редактировалось Stilet; 25.05.2015 в 16:34.
imbaTapac вне форума Ответить с цитированием
Старый 25.05.2015, 16:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

http://www.programmersforum.ru/showthread.php?t=121545
http://www.programmersforum.ru/showthread.php?t=199931
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти количество символов и слов Spaun1 Общие вопросы C/C++ 17 12.11.2012 15:23
Найти количество слов, содержащих цифры to-ot Фриланс 11 16.04.2010 17:56
Дана строка, состоящая из нескольких слов. Найти количество слов, которые содержат хотя бы одну букву "А" Mashaa Помощь студентам 13 09.12.2009 13:28
Дан массив с текстом. Как найти в нем количество разных слов. pascal1994 Помощь студентам 5 06.02.2009 11:50
Количество разных слов в тексте) Если можно сразу код pascal1994 Помощь студентам 1 05.02.2009 10:06