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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2011, 23:38   #1
Kulikcha
Пользователь
 
Регистрация: 16.06.2011
Сообщений: 15
По умолчанию Программа для анализа строки.

Здравствуйте всем! Я ещё новичок в программировании, сейчас в институте прошли указатели. Но я их не совсем понял. Так вот, препод задал написать программу: принять строку с клавиатуры и проверить каждое её слово на символ 'y'. Вывести количество слов, содержащих этот символ. Я вроде бы выполнил это задание. Вот его предполагаемый код:

Код:
#include<iostream>
#include<cstdio>
using namespace std;
int count=0;
int main() {
	char str[80];
	char *q;
	cout<<"Enter a string: ";
	gets(str);
	q=str;
	for(int i=0;*q;) {
		while(q[i] != ' ') {
			if(q[i] == 'y') {
				count++;
			}
		}
		i++;
		q++;
	}
	cout<<count;
}
Но результат не соответствует задуманному. Происходит переход на следующую строку и курсор пульсирует. Больше ничего нет. Я хотел бы знать, какие в этом коде ошибки(логические) и может ли он привести к решению этой задачи, если нет то, если вас не затруднит, вышлите мне код, решающий эту задачу. Сдача проекта уже завтра. Вы моя последняя надежда! Заранее спасибо!




___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 23.06.2011 в 08:51.
Kulikcha вне форума Ответить с цитированием
Старый 23.06.2011, 09:03   #2
Jaguar83
Профессионал
Пользователь
 
Аватар для Jaguar83
 
Регистрация: 25.05.2011
Сообщений: 91
По умолчанию

Вот, смотри код и разбирайся (особенно почитай про функцию strtok)

Код:
#include <iostream>

using namespace std;

int main() 
{
	int count=0;
	char str[80];
	char *token;

	cout<<"Enter a string: ";
	gets(str);

	token = strtok(str," ");
	while (token != NULL) {
		for(int i=0;i<strlen(token);i++) {
			if(token[i] == 'y') {
				count++;
				cout<<token<<endl;
				break;
			}
		}		
		token = strtok(NULL," ");
	}
	cout<<count<<endl;
	return 0;
}
Помог? Будь человеком - жми на весы слева!
Jaguar83 вне форума Ответить с цитированием
Старый 23.06.2011, 23:51   #3
Kulikcha
Пользователь
 
Регистрация: 16.06.2011
Сообщений: 15
По умолчанию

Большое вам спасибо!
Kulikcha вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для грамматического анализа Ivan_32 Софт 0 13.03.2010 05:36
Программа для анализа дисков artemavd Софт 1 10.11.2009 13:22
программа для анализа обьявлений userx Общие вопросы C/C++ 2 19.06.2009 03:01