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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
#1

Не пойму почему функция не переворачивает строку! - C++

17.04.2009, 15:00. Просмотров 1931. Ответов 13
Метки нет (Все метки)

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
#include <iostream>
#include <string>
using namespace std;
void reversit(char word[]);
int main()
{
    const int MAX=80;
    int j;
    char word[MAX];
    cout<<"Vvedite Stro4ku:";
    cin.get(word,MAX);
    reversit(word);
    cout<<"Stro4ka:"<<word<<endl;
    system("pause");
    return 0;
    
}
void reversit(char word[])
{
     int wlen=strlen(word);    
     for(int j=0;j<wlen/2;j++) 
     {                   
        char temp=word[j];     
        word[j]==word[wlen-j-1];
        word[wlen-j-1]==temp;   
     }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2009, 15:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не пойму почему функция не переворачивает строку! (C++):

Функция, которая переворачивает строку - C++
Требуется написать функцию bool ReverseString (string &amp; sString) на С++, которая переворачивает строку sString (первая буква становится...

Как работает функция, которая переворачивает строку? - C++
Объясните , как работает эта функция ,то что она переворачивает строку , это я понял , но вот как она это делает ? Особенно не понятен...

Разработать и испытать функцию, которая переворачивает строку и возвращает указатель на перевёрнутую строку - C++
Разработать и испытать функцию, которая переворачивает строку и возвращает указатель на перевёрнутую строку. Прототип функции инверсии...

Функция которая переворачивает список за один проход - C++
Написала функцию. Эта функция переворачивает список за один проход. Создаю новый список и в него поочередно записываю элементы,но в другом...

Напишите функцию, которая переворачивает строку - C++
1) Напишите функцию, которая переворачивает строку (массив типа char). Используйте цикл for, который меняет местами первый и последний...

Написать функцию, которая переворачивает строку - C++
Написать функцию, которая переворачивает строку. Заголовок функции: void reverseStr (char *s); Написать программу, которая принимает от...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
unStatiK
Заблокирован
17.04.2009, 15:07 #2
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
#include <iostream>
#include <string>
using namespace std;
void reversit(char word[]);
int main()
{
    const int MAX=80;
    int j;
    char word[MAX];
    cout<<"Vvedite Stro4ku:";
    cin.get(word,MAX);
    reversit(word);
    cout<<"Stro4ka:"<<word<<endl;
    system("pause");
    return 0;
    
}
void reversit(char word[])
{
     int wlen=strlen(word);  
        int index = wlen-1;  
     for(int j=0;j<wlen/2;j++) 
     {                   
        char temp=word[j];     
        word[j]=word[index];      // Теперь без косяков =))
        word[index]=temp;
                index--;   
     }
}
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
17.04.2009, 15:11 #3
C++
1
2
3
4
5
6
7
8
9
10
void reversit(char word[])
{
    int wlen=strlen(word);    
    for(int j=0;j<wlen/2;j++) 
    {                   
        char temp=word[j];     
        word[j]=word[wlen-j-1];//вместо "==" нужно "="
        word[wlen-j-1]=temp; //вместо "==" нужно "="  
    }
}
Добавлено через 1 минуту 9 секунд
unStatiK, Вы тоже тоже упустили ошибку.
unStatiK
Заблокирован
17.04.2009, 15:13 #4
Цитата Сообщение от ISergey Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
void reversit(char word[])
{
    int wlen=strlen(word);    
    for(int j=0;j<wlen/2;j++) 
    {                   
        char temp=word[j];     
        word[j]=word[wlen-j-1];//вместо "==" нужно "="
        word[wlen-j-1]=temp; //вместо "==" нужно "="  
    }
}
Добавлено через 1 минуту 9 секунд
unStatiK, Вы тоже тоже упустили ошибку.
Точно ..... а я чето и не заметил на автомате перепечатал в проверенный вариант... пардон господа
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
17.04.2009, 15:37  [ТС] #5
Да просто бы сказали поставить =,вместо двух ==;Спасибо всем

Добавлено через 20 минут 24 секунды
как сделать цикл бесконечным с for(;,не получается со switch(ch);тож не получается в чем тут секрет?

Добавлено через 1 минуту 2 секунды
Ну чтобы вводить постоянно!
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
17.04.2009, 16:01 #6
Цитата Сообщение от Tiami Посмотреть сообщение
как сделать цикл бесконечным с for
C++
1
2
    for(;;)
        cout<<":)"<<endl;
Ну чтобы вводить постоянно!
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
#include <iostream>
using namespace std;
int main()
{
    bool Run = true;
    for(;Run;)
    {
        int menu;
        system("cls");
        cout<<"Press 1: "<<endl;
        cout<<"Press 2: "<<endl;
        cout<<"Press 3: "<<endl;
        cout<<"Press 4(Out): "<<endl;
        cin>>menu;
        switch(menu)
        {
            case 1: cout<<"menu = "<<menu<<endl; break;
            case 2: cout<<"menu = "<<menu<<endl; break;
            case 3: cout<<"menu = "<<menu<<endl; break;
            case 4: cout<<"menu(Out) = "<<menu<<endl; Run = false;
        }
        system("pause");
    }
    return 0;
}
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
17.04.2009, 16:12  [ТС] #7
Не я имел ввиду зациклить мой текст, c for я пробывал,со switch тоже,просто пишутся вечно.....,даже ввода не просят,тупо вводятся пробывал так вот
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
#include <iostream>
#include <string>
using namespace std;
void reversit(char word[]);
int main()
{
    Label:;
    char ch;
    const int MAX=900000;
    int j;
    char word[MAX];
    cout<<"Vvedite Stro4ku:";
    cin.get(word,MAX);
    reversit(word);
    cout<<"Stro4ka:"<<word<<endl;
    cout<<"Prodolgit y/n=?";
    cin>>ch;
    switch(ch)
    {
              case 'y':
                 goto Label;
                   break;
              case 'n':
                   return 1;
    }
    return 0;
    
}
void reversit(char word[])
{
     int wlen=strlen(word);    
     for(int j=0;j<wlen/2;j++) 
     {                   
        char temp=word[j];     
        word[j]=word[wlen-j-1];
        word[wlen-j-1]=temp;   
     }
}
пробывал так вот:
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
#include <iostream>
#include <string>
using namespace std;
void reversit(char word[]);
int main()
{
    const int MAX=900000;
    int j;
    char word[MAX];
    for(;;)
    {
    cout<<"Vvedite Stro4ku:";
    cin.get(word,MAX);
    reversit(word);
    cout<<"Stro4ka:"<<word<<endl;
    }
    return 0;
    
}
void reversit(char word[])
{
     int wlen=strlen(word);    
     for(int j=0;j<wlen/2;j++) 
     {                   
        char temp=word[j];     
        word[j]=word[wlen-j-1];
        word[wlen-j-1]=temp;  
}
и пробывал так,получается чушь не пашет циклы:
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
#include <iostream>
#include <string>
using namespace std;
void reversit(char word[]);
int main()
{
    char ch;
    const int MAX=900000;
    int j;
    char word[MAX];
    cout<<"Vvedite Stro4ku:";
    cin.get(word,MAX);
    reversit(word);
    cout<<"Stro4ka:"<<word<<endl;
    cout<<"Prodolgit y/n=?";
    cin>>ch;
    switch(ch)
    {
              case 'y':
                  cout<<"Vvedite Stro4ku:";
                  cin.get(word,MAX);
                  reversit(word);
                  cout<<"Stro4ka:"<<word<<endl;
                   break;
              case 'n':
                   return 1;
    }
    return 0;
    
}
void reversit(char word[])
{
     int wlen=strlen(word);    
     for(int j=0;j<wlen/2;j++) 
     {                   
        char temp=word[j];    
        word[j]=word[wlen-j-1]; 
        word[wlen-j-1]=temp;   
     }
}
Добавлено через 1 минуту 1 секунду
Нада так чтобы просил вводить ввести и вывести!и потом снова сначала
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
17.04.2009, 16:22 #8
С цыклом for(;; ) нормально.
только вместо
C++
1
cin.get(word,MAX);
лучше
C++
1
cin>>word;
или
C++
1
cin.getline(word,MAX);
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
17.04.2009, 16:32  [ТС] #9
Цитата Сообщение от ISergey Посмотреть сообщение
С цыклом for(;; ) нормально.
Дополни плиз)))Я пока на С++ не умею етого,чтобы при этом введеные фразы сохранялись в текстовый файл на рабочем столе,и при новом введение строки дополняли егоПожалуйста,имеется ввиду вот так:
введите фразу>>Mir
вывод на экран>>riM
сохранение в файл и дополнение...Loadind 3..2..1..0!Готово
и снова:
введите фразу>>Mir
вывод на экран>>riM
сохранение в файл и дополнение...Loadind 3..2..1..0!Готово
А когда открываешь Текстовый файл было видно вот так:
Введеная фраза Mir
Ответ riM
//////три Enter и снова
Введеная фраза Mir
Ответ riM
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
17.04.2009, 17:00 #10
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
#include <iostream>
#include <fstream>//поток ввода в файл
#include <string>
 
using namespace std;
 
void reverse(char *str);
int main()
{
    const int len = 1024;//хватит и этого
    char word[len];
    bool Run = true;//с цыкла нужно хоть когдато выйти.
    ofstream myfile;
    myfile.open("myfile.txt");
    while(Run)//while лучше чем for(;Run;)
    {
        cout<<"Press 'q' to exit.\nInput string:";
        cin>>word;
        if(word[0]=='q'){
            Run = false;
            continue;
        }
        myfile<<"Input String: "<<word<<endl;
        reverse(word);
        myfile<<"Result: "<<word<<endl;
    }
    myfile.close();
 
    //------------------------------------------------------
    //для проверки 
    system("cls");
    string line;
    ifstream myfile_test ("myfile.txt");
    if (myfile_test.is_open())
    {
        while (! myfile_test.eof() )
        {
            getline (myfile_test,line);
            cout << line << endl;
        }
        myfile_test.close();
    }
    else cout << "Unable to open file"; 
    //------------------------------------------------------
    system("pause");
 
    return 0;
}
void reverse(char *str)
{
    int wlen = (int)strlen(str);
    char temp;
    for(int i = 0; i < wlen/2; i++) 
    {                   
        temp    =   str[i];    
        str[i]  =   str[wlen-i-1]; 
        str[wlen-i-1] = temp;   
    }
}
Подробно здесь
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
17.04.2009, 17:29  [ТС] #11
О спс спс спс огромное

Добавлено через 10 минут 50 секунд
Так слушайте клевая ИдеяТак можно кодировать любой текст,главное в цикле for определить алгоритм,можно даже его записать допустим в какой то последовательности или по формулам чтобы буковки шли определенно,а другому человеку послать раскодировщик))Так в этом суть Таких программ как ICQ и других всяких программ?)типа закодировывают также и раскодировывают также?)
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
17.04.2009, 17:43 #12
Цитата Сообщение от Tiami Посмотреть сообщение
Так слушайте клевая ИдеяТак можно кодировать любой текст,главное в цикле for определить алгоритм,можно даже его записать допустим в какой то последовательности или по формулам чтобы буковки шли определенно,а другому человеку послать раскодировщик))Так в этом суть Таких программ как ICQ и других всяких программ?)типа закодировывают также и раскодировывают также?)
Вполне возможно.
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
17.04.2009, 17:50 #13
В ICQ как раз сообщения не шифруются,но в Jabber это возможно.Про алгоритмы можешь почитать http://ru.wikipedia.org/wiki/RSA
Monte-Cristo
2788 / 1374 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
17.04.2009, 17:59 #14
Цитата Сообщение от Tiami Посмотреть сообщение
Так слушайте клевая ИдеяТак можно кодировать любой текст,главное в цикле for определить алгоритм,можно даже его записать допустим в какой то последовательности или по формулам чтобы буковки шли определенно,а другому человеку послать раскодировщик))Так в этом суть Таких программ как ICQ и других всяких программ?)типа закодировывают также и раскодировывают также?)
как правило кодирование идет двоичного кода файла, сообщения и т.д.
этот же алгоритм очень прост и он легко ломается хакерами.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2009, 17:59
Привет! Вот еще темы с ответами:

Написать функцию, которая переворачивает строку - C++
1) Напишите функцию, которая переворачивает строку (массив типа char). Используйте цикл for, который меняет местами первый и последний...

Написать функцию, которая переворачивает строку (массива типа char). - C++
Вот задание: Написать функцию reversit(), которая переворачивает строку (массива типа char). Используйте цикл for, которая меняет первый...

Напишите функцию, 1.которая переворачивает строку 2.вычисления корней квадратного уравнения - C++
ПОЖАЛУЙСТА ВЫРУЧИТЕ, ПОМОГИТЕ НАПИСАТЬ ПРОГИ: 1) Напишите функцию, которая переворачивает строку (массив типа char). Используйте цикл...

Написать и протестировать функцию, которая "переворачивает" строку, передаваемую ей в качестве параметра - C++
Написать и протестировать функцию,которая &quot;переворачивает&quot; строку,передаваемую ей в качестве параметра


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.04.2009, 17:59
Ответ Создать тему
Опции темы

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