Форум программистов, компьютерный форум CyberForum.ru

проясните вопрос в строках - C++

Восстановить пароль Регистрация
 
mexxantom
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 47
06.05.2011, 16:32     проясните вопрос в строках #1
вот программа с объявлениями строк как тип стринг и как массив


C++
1
2
3
4
5
6
7
8
9
10
11
#include "stdafx.h"
#include "iostream"
#include "string"
using namespace std;
int main()
{string h="mama papa ded";
cout<<h<<endl;
char f[20]={"mama papa ded"};
cout<<f<<endl;
    return 0;
}

в 1 и 2 случае выводит полностью строку (mama papa ded)
уважаемые знатоки внимания вопрос
Как сделать так чтобы выводил не всю строку а допустим только слово папа(вариант объявления стринг или как массив не имеет значения)?
помогите плиз!!!

 Комментарий модератора 
Используйте теги форматирования кода!


Добавлено через 52 минуты
хорошо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1762 / 985 / 60
Регистрация: 29.03.2010
Сообщений: 2,979
06.05.2011, 16:44     проясните вопрос в строках #2
объявите массив указателей на char, напишите цикл, в цикле проверяйте исходную строку на ' ' к примеру или на какой вам будет угодно другой разделитель и добавляйте в объявленный массив разобранные слова, после чего выводите нужное слово.
mexxantom
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 47
06.05.2011, 16:48  [ТС]     проясните вопрос в строках #3
если можно с примерами кодов пожалуйста
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1762 / 985 / 60
Регистрация: 29.03.2010
Сообщений: 2,979
06.05.2011, 17:08     проясните вопрос в строках #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int i = 0;
int row = 0;
int rowIter = 0;
char result[10][10];
while(str[i] != '\0'){
  if(str[i] == ' '){
    i++;
    result[row][rowIter] = '\0';
    row++;
    rowIter = 0;
    continue;
  }
  result[row][rowIter] = str[i];
  i++;
  rowIter++;
}
таким вот примитивным образом можно разбить предложение на слова, при условии, что они будут разделены только и одним пробелом, иначе будет что попало :-) ну и дальше в массиве result[i] под индексом i будет храниться ссылка на первый элемент слова. в общем как-то так.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
06.05.2011, 17:27     проясните вопрос в строках #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
std::ostream& operator << (std::ostream& str,char *c)
{
    while(*c!=' ')
        str<<*c++;
    return str;
}
int main ()
{
    char ch[]="Hello word!\n";
    std::cout<<ch;
    return 0;
}
При желании можно доработать.
Yandex
Объявления
06.05.2011, 17:27     проясните вопрос в строках
Ответ Создать тему
Опции темы

Текущее время: 19:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru