Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Строки в С++!


Автор: Baton2007 29.11.2007, 19:56
У меня вопрос такой мне дали задание написать прогу которая подсчитывает количество слов в строке введенной пользователем я написал вот такую прогу но она считает пробелы , а не слова как мне ее доделать подскажите?
#include <stdio.h> 
#include <string.h>
#include<conio.h>
int main(void) { 

int j, i=0; 

char* str;
printf("\nVvedite stroky:");

gets(str); 

for(j = 0; j < strlen(str); j++) {
if(str[j] == ' ')
i++;
}
printf("Probelov v stroke %d\n",i);
getch();
}

Автор: Alek86 29.11.2007, 20:01
найти букву
если нашел букву, инкрементируй счетчик и дальше ищи небукву(или конец строки).
как найдешь небукву, дальше снова ищи букву...

Автор: JackYF 29.11.2007, 20:04
Baton2007, пользуйся кнопкой "Код".
И отредактируй название темы, из него задача ни фига не понятна.

Код

#include <stdio.h> 
#include <string.h>
#include<conio.h>
int main(void) { 

int j, wordsInString=0; 

char* str;
printf("\nVvedite stroky:");

gets(str); 

bool isWordNow = false;
for(j = 0; j < strlen(str); j++)
{
  if(str[j] == ' ')
  {
    isWordNow = false;
  }
  else
  {
     if (isalpha(str[j]) && !isWordNow)
     {
        isWordNow = true;
        wordsInString += 1;
     }
  }
}
printf("Probelov v stroke %d\n", wordsInString);
getch();
}

Для начала где-то так, писал здесь, мог ошибиться.

Добавлено через 1 минуту и 1 секунду
И пользуйся отступами, чтобы твой код можно было читать.

Автор: Baton2007 29.11.2007, 20:08
Ребята я новичок мне попроще объясните!

Автор: JackYF 29.11.2007, 20:12
Цитата(Baton2007 @  29.11.2007,  20:08 Найти цитируемый пост)
Ребята я новичок мне попроще объясните! 

Что тебе не понятно?

Автор: Baton2007 29.11.2007, 20:23
А почему мой код не работает может просто умножить найденые пробелы на два т.к пробелы ставятся в основном между словами то их можно умножить и получится количество слов можно так или нет и как это реализовать?

Автор: JackYF 29.11.2007, 20:34
Цитата(Baton2007 @  29.11.2007,  20:23 Найти цитируемый пост)
умножить найденые пробелы на два

то есть если у тебя 5 слов, между ними 4 пробела, то слов получается 4*2 == 8?

Автор: Baton2007 29.11.2007, 20:48
Да чето я протупил ты прав так не выйдет!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)