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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2010, 16:26   #1
dma
Пользователь
 
Регистрация: 09.10.2007
Сообщений: 22
По умолчанию [Си] Строки

программа выводит на экран только цифры встречающиеся в строке, а мне надо, чтобы на экран выводилось все слово целиком которое содержит цифру
Код:
Код:
#include <ctype.h>
#include <stdio.h>
int main()
{
   char str;
   for(;;)
   {
      str = getc(stdin);
      if (str == '.') break;
      if (isdigit(str) && isgraph(str)) printf ("%c has a digit\n", str);
   }
return 0;
}
никак не получается с этим разобраться, помогитеее
dma вне форума Ответить с цитированием
Старый 20.03.2010, 19:41   #2
dma
Пользователь
 
Регистрация: 09.10.2007
Сообщений: 22
По умолчанию

Цитата:
Сообщение от dma Посмотреть сообщение
программа выводит на экран только цифры встречающиеся в строке, а мне надо, чтобы на экран выводилось все слово целиком которое содержит цифру
Код:
Код:
#include <ctype.h>
#include <stdio.h>
int main()
{
   char str;
   for(;;)
   {
      str = getc(stdin);
      if (str == '.') break;
      if (isdigit(str) && isgraph(str)) printf ("%c has a digit\n", str);
   }
return 0;
}
никак не получается с этим разобраться, помогитеее
Help! уже скоко мучаюсь ничего не выходит, помогитее
dma вне форума Ответить с цитированием
Старый 20.03.2010, 19:58   #3
Himka
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 14
По умолчанию

Тебе надо сперва ввести строку. Потом ищешь в строке слова. Каждое найденное слово проверяешь на наличие в нем хотя бы одной цифры. Если слово содержит цифру, то выводишь его на экран.
Himka вне форума Ответить с цитированием
Старый 20.03.2010, 20:03   #4
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Код:
#include <string>
#include <iostream>

using namespace std;


int main()
{

char str[255], *pstr;

cout << "Input string: ";
cin.getline(str, 255);

cout << "Output string: ";

pstr = strtok(str, " ");

while(pstr)
{
	for(int i = 0; i < strlen(pstr); i++)
		if((pstr[i] >= '0') && (pstr[i] <= '9'))
		{
			cout << pstr << " ";
			break;
		}
	pstr = strtok(NULL, " "); 
}

cin.get();

return 0;
}
profi вне форума Ответить с цитированием
Старый 20.03.2010, 20:03   #5
dma
Пользователь
 
Регистрация: 09.10.2007
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Himka Посмотреть сообщение
Тебе надо сперва ввести строку. Потом ищешь в строке слова. Каждое найденное слово проверяешь на наличие в нем хотя бы одной цифры. Если слово содержит цифру, то выводишь его на экран.
так вот в том то и дело, что надо все слово вывести, а у меня только цифра из слова выводится, как все слово вывести никак не сделать
dma вне форума Ответить с цитированием
Старый 20.03.2010, 20:53   #6
dma
Пользователь
 
Регистрация: 09.10.2007
Сообщений: 22
По умолчанию

profi
класс, работает как надо, но только это С++, а мне на С надо, если не сложно покажи как
Код:
cout << pstr << " ";
на С записать,
и что означает NULL ?

Последний раз редактировалось dma; 21.03.2010 в 16:47.
dma вне форума Ответить с цитированием
Старый 21.03.2010, 16:48   #7
dma
Пользователь
 
Регистрация: 09.10.2007
Сообщений: 22
По умолчанию

Цитата:
Сообщение от dma Посмотреть сообщение
profi
класс, работает как надо, но только это С++, а мне на С надо, если не сложно покажи как
Код:
cout << pstr << " ";
на С записать,
и что означает NULL ?
Heelp пожалуста
dma вне форума Ответить с цитированием
Старый 21.03.2010, 18:00   #8
dma
Пользователь
 
Регистрация: 09.10.2007
Сообщений: 22
По умолчанию

Вот работающий код
Код:
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#define LEN 255
int main()
{

char str[LEN], *pstr;
printf("Input string: ");
fgets(str, LEN, stdin);
pstr = strtok(str, " ");
while(pstr)
{
	for(int i = 0; i < strlen(pstr); i++)
		if((pstr[i] >= '0') && (pstr[i] <= '9'))
		{
			printf("Output string: %s", pstr);
			break;
		}
    
	pstr = strtok(NULL, " "); 
	
}


system("PAUSE");
}
Но, если ввести строку: ggsfs huuo2 hud ogo3oi 89 (например), то результат будет в виде:Output string: huuo2Output string: ogo3oiOutput string: 89
а хочется, чтобы вид был:Output string:huuo2 ogo3oi 89
dma вне форума Ответить с цитированием
Старый 21.03.2010, 18:03   #9
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Склеивай найденные строки через пробел и после цикла выводи
psycho-coder вне форума Ответить с цитированием
Старый 21.03.2010, 18:16   #10
dma
Пользователь
 
Регистрация: 09.10.2007
Сообщений: 22
По умолчанию

..........

Последний раз редактировалось dma; 21.03.2010 в 19:32.
dma вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление элементов строки s2 из строки s1 Ueshua Общие вопросы C/C++ 4 20.12.2009 13:06
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45