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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2011, 20:55   #1
tim47
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 14
По умолчанию Строки. Си++

Здравствуйте. Помогите пожалуйста написать комментарии к задаче.
Вот условие: Дана строка.Указать те слова,которые содержат хотя бы одну букву k.

Код программы:
Код:
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
void main() 
{ 
char* temp = "this string contains unknown number of words which have keys"; 
char* str = (char*)malloc(strlen(temp)+1); 
strcpy(str,temp);	
printf("%s\n",str); 
temp = strtok(str," "); 
while(temp) 
{ 
if(strchr(temp,'k')) 
printf("%s ",temp); 
temp = strtok(NULL," "); 
} 
printf("\n");  
}
tim47 вне форума Ответить с цитированием
Старый 04.12.2011, 21:34   #2
QunneD
C++ &amp;amp; PHP &amp;amp; Asm
Форумчанин
 
Аватар для QunneD
 
Регистрация: 06.12.2008
Сообщений: 300
По умолчанию

Код:
#include <stdio.h> // подключаем библиотеку stdio
#include <stdlib.h> // подключаем библиотеку stdlib
#include <string.h> // подключаем библиотеку string

void main() // основная процедура, в которой происходят все операции
{ 
char* temp = "this string contains unknown number of words which have keys"; // объявляем переменную temp с типом char и задаем значение
// вместительность переменной нам неизвестна.
char* str = (char*)malloc(strlen(temp)+1); // захватываем блок памяти, с размером в temp+1 байт
strcpy(str,temp); // копируем терминированную строку в буфер str
printf("%s\n",str); // выводим содержимое str
temp = strtok(str," "); // указываем символ ограничитель " " для str
while(temp) // создаем цикл
{ 
if(strchr(temp,'k')) // если находим символ 'k' в temp
printf("%s ",temp); // выводим слово в котором этот символ присутствует
temp = strtok(NULL," ");
} 
printf("\n");  
}
Как-то так..
QunneD вне форума Ответить с цитированием
Старый 06.12.2011, 15:34   #3
tim47
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 14
По умолчанию

большое спасибо!
tim47 вне форума Ответить с цитированием
Старый 06.12.2011, 16:29   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Можно и так... -)
Код:
#include <iostream>
#include <string>
#include <sstream>
#include <iterator>
#include <algorithm>

using namespace std;

int main()
{
	string str = "this string contains unknown number of words which have keys";
	stringstream ss(str);

        // Выводит слова, в которых есть хотя бы одна буква "k"
        for (istream_iterator<string> iter(ss); iter != istream_iterator<string>(); ++iter)
		if (find_if(iter->begin(), iter->end(), bind2nd(equal_to<char>(), 'k')) != iter->end())
			cout << *iter << endl;
}
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать в гриде строки выше, чтобы не растягивать строки до бесконечности kris__tina БД в Delphi 1 09.06.2011 15:31
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0 . Если совпадающих подстрок нет, Шпунюся Помощь студентам 1 16.12.2010 21:02
Создание пустой строки и копирование в неё содержимое предыдущей строки Gvaridos Microsoft Office Excel 2 29.10.2010 13:33
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. Александе еть я Общие вопросы C/C++ 5 13.04.2010 20:54
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10