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

Строки в С++, не могу понять что неправильно в программе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Cформировать квадратную матрицу порядка n по заданному образцу http://www.cyberforum.ru/cpp-beginners/thread390891.html
Помогите пожалуйста
C++ std::ios::hex или std::ios.hex привет в коде встретил вот такую строчку ss.setf(std::ios.hex, std::ios::basefield); и на VS2008 это работает. Разве это не синтаксическая ошибка? http://www.cyberforum.ru/cpp-beginners/thread390886.html
C++ Вводятся две строки типа Слово1 Слово2...
Помогите, уважаемые программисты! Заранее спасибо. Вводятся две строки типа Слово1 Слово2. Необходимо исправить ошибки, связанные с неверным использованием прописных и строчных букв. Возможно появление десятичных цифр. В этом случае необходимо выдать сообщение об ошибке. Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
C++ Запрет ввода русских букв....
Ребят подскажите как сделать запрет на использование русских букв в консоли, т.е если вводишь русские буквы жмешь enter и программа выдает ошибку... Я знаю 1 способ через массив char ru={А...я}; for(...;....;...;) { if(...=="ru") return -1; } Но это как то громоздко, можно ли как то по-другому сделать?
C++ Создание строки динамически http://www.cyberforum.ru/cpp-beginners/thread390865.html
Есть задание: Дана строка символов, состоящаяиз произвольного текста, слова разделены пробелами. Вывести на экран порядковый номер слова минимальной длины и количество символов в этом слове. Я хочу создать временную строку, куда буду помещать слова, потом находить их длину с помощь strlen() Но почему-то на меня ругается компилятор, и я не могу понять в чем я не прав. Вот что он выдает:
C++ По заданным номеру масти и номеру достоинства карты определить полное название народ есть задания: 1. Мастям игральных карт условно присвоены слеующие порядковые номера: масти "пики" — 1,.масти "трефы" — 2, масти "бубны" — 3, масти "червы"— 4; а достоинству карт: "валету" — 11, "даме" — 12, "королю" — 13, "тузу" — 14 (порядковые номера карт остальных достоинств соответствуют их названиям: шестерка, девятка и т.п.). По заданным номеру масти m (1 m 4) и номеру достоинства... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
24.11.2011, 16:57
Цитата Сообщение от Chif Посмотреть сообщение
посмотрел, прочитал, не понял. или мне всю программу переделывать?
Я уже это сделал(в вашем коде и iostream и strtok - это смесь плюсов и Си, в добавок в плюсах предпочтительней использовать string чем char str[])
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
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
 
int main()
{
    long i = 0,j, nWords = 0;//Áóäåò ñîäåðæГ*ГІГј ÷èñëî ñëîâ Гў ñòðîêå
    string str;
    string buf;
    string * pWords;
    stringstream ss;
    cout<<"Enter text : \n";
    getline(cin,str);//Âîò ГІГ*ГЄ ââîäèòñÿ string Г± ïðîáåëГ*ìè
    nWords = 0;
    ss.str(str);
    //Ñ÷èòГ*ГҐГ¬ ÷èñëî ñëîâ Гў ñòðîêå
    while(ss>>buf)
        nWords++;
    cout<<"Number words in string : "<<nWords<<endl;
    ss.clear();//Î÷èñòèëè ñòðèГ*ãïîòîê
    ss.str(str);//Г‘Г*îâГ* Г§Г*ГЇГЁГµГ*óëè Гў Г*ГҐГЈГ® ñòðîêó
    pWords = new string[nWords + 2];
    //Г‡Г*ïèñûâГ*ГҐГ¬ ñëîâГ* Гў Г¬Г*Г±Г±ГЁГў
    while(ss>>pWords[i])
        i++;
 
    int nSame = 0;//×èñëî îäèГ*Г*êîâûõ ñëîâ
    //ÑîðòèðîâêГ* ïðÿìûì âûáîðîì
    //ГЇГ® 1-Г¬ ГЎГіГЄГўГ*Г¬ ñëîâ + ïîäñ÷¸ò îäèГ*Г*êîâûõ
    for(i = 0    ;i <= nWords; i++)
    for(j = i + 1;j <= nWords; j++)
    {
        if(tolower(pWords[j][0]) < tolower(pWords[i][0]))
        {
            buf = pWords[i];
            pWords[i] = pWords[j];
            pWords[j] = buf;
        }
        if(strcmp(pWords[i].c_str(),pWords[j].c_str()) == 0)
            nSame++;
    }
    cout<<"Sorted words\n";
    for(i = 0    ;i <= nWords; i++)
        cout<<pWords[i]<<endl;
    cout<<"Number of same words : "<<nSame<<endl;
    delete [] pWords;
    system("pause");
    return 0;
}
PS:После введенного текста (при создании проекта на старых компиляторах ) Enter нужно нажать 2 раза
Миниатюры
Строки в С++, не могу понять что неправильно в программе  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru