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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2015, 18:52   #1
Romchik1
 
Регистрация: 15.01.2015
Сообщений: 4
По умолчанию Программирование на С. Строки

Доброго времени суток.
Такая проблема: нужно ввести массив строк, чтобы в строках были пробелы и почитать количество слов в каждой строке. Если строка полностью состоит из пробелов, то количество слов=0. Написал через gets, но он почему-то пропускает ввод строки на первой итерации, хоть какой начальный i не ставь, всё равно так делает. А если поменять gets на scanf то всё работает прекрасно, но scanf пробелы не читает.

Подскажите как устранить данную проблему.
Заранее спасибо!)
Код:
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>
#define N 6
#define M 80
int main()
{
short int i, sd, s=0, f=0, v, n=0, k=0, j, g, d, x,p,t;
char st[N][M+1];
clrscr();
printf("vvedite kolichestvo strok ->");
scanf("%d\n",&p);
if(p>N) p=N;
printf("vvedite stroki-> ");
for(t=0; t<p; t++)
gets(st[t]);
for(t=0; t<p; t++)
{
if ((j>0)&&(x>0)){//po ysloviyu pravilnogo vvoda
sd=strlen(st[t]);// dl. str.
for(i=0;i<sd;i++)
{ //cikl
v=isspace(st[t][i]);
if(f==0)//nach. li slovo
{ //nach. slova
if ((v==0)&&(i==0)) {n=i; f=1; }//ysl. nachala slova
else if((v==0)&&(i!=0)&&((v=isspace(st[t][i-1]))!=0)) {n=i; f=1;}
}//nach. slova
if(f==1)
{//kon. slova
if ((v==0)&&(i==(sd-1)))
{//vn.usl
k=i;
f=0;
s++; //nomer slova
}//vn.usl
else if((v==0)&&(i!=sd)&((v=isspace(st[t][i+1]))!=0))
{//vn.usl
k=i;
f=0;
s++;
} //vn. usl
} }
printf("\n Number of words- ");
printf("%d \n ",s);}
s=0;
}
getch();
return 0;
}

Последний раз редактировалось Stilet; 15.01.2015 в 20:09.
Romchik1 вне форума Ответить с цитированием
Старый 15.01.2015, 19:44   #2
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

попробуйте
Код:
#include <iostream.h>
cin.getline(string,255);
string - куда записывать
255 - количество симполов
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Старый 16.01.2015, 01:40   #3
Romchik1
 
Регистрация: 15.01.2015
Сообщений: 4
По умолчанию

Спасибо большое)
Romchik1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое программирование.Удаление строки zaptos91 Помощь студентам 10 14.10.2014 16:00
Задача на строки. Даны две строки. Определить можно ли из символов первой строки получить вторую строку.( написать подпрограммой и ANTON1994 Паскаль, Turbo Pascal, PascalABC.NET 5 09.02.2013 14:07
Программирование или web-программирование? Дмитрий Батогов Помощь студентам 3 23.06.2011 14:14
Программирование на shell. Удаление строки. 66promises Помощь студентам 0 23.05.2010 15:08
Процедурное программирование - строки (Pascal) SubFocus Помощь студентам 3 20.07.2009 19:08