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

Использование string - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите решить прогу оченя надо http://www.cyberforum.ru/cpp-beginners/thread368057.html
17) Отримати квадратну матрицю порядку n . 1 2 3 ... n-1 n 2 1 2 ... n-2 n-1 3 2 1 ... n-3 n-2 . . . . . . n-1 n-2 n-3 ... 1 2 n n-1 n-2 ... 2 1
C++ Device driver file not found Ребят всем привет!!! Подскажите пожалуйста пытаюсь запустить через Dev C++ код программы,пишет ошибку Device driver file not found(EGAVGA.BGI)'' Помогите разобраться http://www.cyberforum.ru/cpp-beginners/thread368029.html
C++ Построить алгоритм исключения элемента из очереди
1.Построить алгоритм исключения элемента из очереди длинной m и занесения элемента в стек длиной n (значения m и n выбираются произвольно)
C++ Написать программу для нахождения A28, используя шесть операций умножения
Написать программу для нахождения A28, используя шесть операций умножения
C++ работа со строкой http://www.cyberforum.ru/cpp-beginners/thread368021.html
ПОМОГИТЕ пожалуйста Необходимо написать программу в C++ которая находила бы максимальное число в строке которое содержит слова и числа в формате f, и делила бы это число на все числа в строке искал материал но подходящего ни где не нашел. Заранее спасибо Добавлено через 38 секунд В строке не более 255 символов и не более 10 чисел
C++ Посимвольный ввод в массив Здравствуйте! Вы не могли бы посмотреть и, по возможности, ответить на 2 вопроса: 1) Как мне сделать условие в цикле, чтобы он завершался при нажатии на Enter; 2) Почему у меня значения в массив записываются через одно; Заранее спасибо! #include<iostream> void main() { {char *c = new char(); for(int i=0;((cin.get())!=13);i++) подробнее

Показать сообщение отдельно
Lennadij
3 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 45
20.10.2011, 19:57  [ТС]     Использование string
KeyGen, спасибо большое за программу. но преподаватель сказал, что нужно сделать чтобы строка вводилась, а не была уже задана (потом работать с ней с помощью разделителей), и заданное слово тоже вводилось. Попробовала сделать так, но не могу найти в чем ошибка. Может посмотришь ее?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// 2.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
 
void main ()
{   string s,s1,*s2;//Cоздали два объекта класса 
                    //string и указатель на объект классса string
    int k=0;
    char *p;
    string razd=" ,.:"; /*Создали объект класса string, с помощью конструктора копирования для хранения разделителей между словами */
    string word; /*Создали объект класса string
    cout<<"Enter string:  ";
    getline(cin,s);//Считали строку из потока cin
    s2=new string [s.length()/2];//Выделили память под 
                            //массив строк
    s1=s;/* Скопировали строку s в строку s1 с помощью переопредленной операции = */
    cout<<"syllable type: ";
    cin>>word;
    int n= s1.find_first_of(razd);/*Нашли позицию первого разделителя в строке s1*/
    while (n!=NPOS)
    {
        if (n)
        {
            s2[k]=s1.substr(0,n); /*Сохранили подстроку до разделителя как очередной элемент массива */
            if (word.find(s2[k][0])!=NPOS)cout<<"\n"<<s2[k];
            k++;
        }
        s1=s1.substr(n+1); /*Далее рассматриваем только оставшуюся часть строки*/
        n=s1.find_first_of(razd);//Нашли позицию очередного разделителя
    }
    s2[k]=s1; //Обработка последнего слова
    if (word.find(s2[k][0])!=NPOS)cout<<"\n"<<s2[k];
}
Добавлено через 24 минуты
Тема закрыта) я поняла где была ошибка)ура!!!!!!! Для интереса вот переписанная часть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
string::size_type npos;
    npos=s1.find_first_of(razd);/*Нашли позицию первого разделителя в строке s1*/
    while (npos!=string::npos)
    {
        if (npos)
        {
            s2[k]=s1.substr(0,npos); /*Сохранили подстроку до разделителя как очередной элемент массива */
            if (word.find(s2[k][0])!=string::npos)cout<<"\n"<<s2[k];
            k++;
        }
        s1=s1.substr(npos+1); /*Далее рассматриваем только оставшуюся часть строки*/
        npos=s1.find_first_of(razd);//Нашли позицию очередного разделителя
    }
    s2[k]=s1; //Обработка последнего слова
    if (word.find(s2[k][0])!=string::npos)cout<<"\n"<<s2[k];
system("PAUSE");
И вуаля все работает

 Комментарий модератора 
Используйте теги форматирования кода!
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru