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

Преобразование строк - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Игра Пятнашки доработка http://www.cyberforum.ru/cpp-beginners/thread1051948.html
Помогите пожалуйста Игра Пятнашки не могу поставить условие так что бы после того как все собрал выводилась надпись "вы выиграли" я собирал пару раз и он продолжается бесконечно =( писал на Xcod под windows не запускал. Програ работет спасибо за ранее #include <iostream> enum EMove {Up = 'w', Down = 's', Left = 'a', Right = 'd'};
C++ Сайты для изучения с++ Привет всем!Народ не подскажете есть ли еще сайты по изучению с++ на подобие ''интуит''-а? Заранее всем спасибо:) http://www.cyberforum.ru/cpp-beginners/thread1051925.html
C++ Паскаль/С++
Привет всем, помогите, пожалуйста... Нужно перевести код программы из паскаля в с++ код: repeat Write('Введите строку (пустая строка - конец программы): '); Readln(s); if s<>'' then begin for i:=1 to (Length(s) div 2) do begin ch := s; s := s;
выведите перечисленные ниже слова из списка С содержащие ровно две буквы d C++
Нужно написать другой код к этому заданию Задание: выведите перечисленные ниже слова из списка С содержащие ровно две буквы d. #include "stdafx.h" #include <iostream> using namespace std; void main()
C++ Имеется файл F1, в котором записано 20 слов (можно больше). Три потока генерируют случайные числа в диапазоне 0 – 100 http://www.cyberforum.ru/cpp-beginners/thread1051919.html
Имеется файл F1, в котором записано 20 слов (можно больше). Три потока генерируют случайные числа в диапазоне 0 – 100. Если сгенерированное число больше 90, поток генерирует случайное число n от 1 до 20, открывает файл F1, берет из него слово под номером n, откры-вает файл F2 и вписывает взятое слово в него файлы F1 и F2 закры-ваются. Каждый поток должен записать в файл F2 по три слова....
C++ выведите перечисленные ниже слова из списка С содержащие ровно две буквы d Помогите написать другой код к этому заданию Задание: выведите перечисленные ниже слова из списка С содержащие ровно две буквы d. #include "stdafx.h" #include <iostream> using namespace std; void main() подробнее

Показать сообщение отдельно
Qwertiy
818 / 626 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
24.12.2013, 00:57     Преобразование строк
Цитата Сообщение от Kostia1012
Привет. Посмотри пожалуйста код, покажи где ошибки...
При выборе кейс 1 должен работать код, там вводишь текст и он его переворачивает, но этого не происходит
Помоги, пожалуйста
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
51
52
53
54
55
56
57
58
59
60
61
62
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
    setlocale(0, "");
    char ch;
    char t;
    int i, j, sn;
    char s[256];
    cout << "Программа переворачивет строку \n";
    for (;;)
    {
        do
        {
            cout << "1. 1.\n";
            cout << "2. 2.\n";
            cout << "3. 3.\n";
            cout << "4. Закрыть программу.\n";
            cout << "Выберите пункт меню:\n";
            ch = getchar();
        } while (ch != '1' && ch != '2'&& ch != '3'&& ch != '4');
        switch (ch)
        {
        case '1':
        {
                    cout << "Введите строку: ";
                    cin.getline(s, sizeof(s));
                    sn = strlen(s);
                    if (sn != 0)
                    {
                        i = 0; j = sn - 1;
                        while (i < j)
                        {
                            t = s[i]; s[i] = s[j]; s[j] = t;
                            ++i; --j;
                        }
                        cout << s;
 
                    }
 
        }
            getchar();
            break;
        case '2':
        {
                    getchar();
                    break;
        }
        case '3':
        {
 
                    getchar();
                    break;
        }
        case '4':
            exit(0);
 
    }
}
return (0);
}
Привет. Getсhar считывает символ, но оставляет перевод строки, поэтому при чтении строки считывается пустая строка, заканчивающаяся этим переводом. Так что надо читать две строки, а не одну:
C++
1
2
3
//cin.getline(s, sizeof(s));
//gets(gets(s)); // Например так, если гарантируется, что там не конец файла
scanf("%*1[\r\n]%[^\r\n]", s); // Но лучше так
Добавлено через 12 минут
Кстати (в рандомном порядке, мне лень сортировать):
  • У содержимого case'ов в большинстве случаев фигурные скобки не нужны
  • У return'а круглые скобки не нужны
  • У sizeof'а переменной скобки не обязательны, у sizeof'а типа - обязательны
  • Вместо do-while лучше использовать default в switch'е
  • Return в main'е не нужен, т. к. он недостижим из-за вечного цикла
  • Вызовов exit следует избегать, лучше там было написать return
  • Я бы не стал использовать getchar в этом задании
  • Подключаемые заголовочные файлы не соответствуют используемым функциям - это фича VS

Добавлено через 1 минуту
Цитата Сообщение от Qwertiy Посмотреть сообщение
Вместо do-while лучше использовать default в switch'е
Хм.. Тут и default не нужен - оно и так будет в цикле крутиться.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru