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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 50, средняя оценка - 4.88
Aggressor
Сообщений: n/a
#1

Передача строки в функцию и ее вывод - C++

20.12.2008, 17:49. Просмотров 6071. Ответов 1
Метки нет (Все метки)

Добрый день. Есть функция main() которая сначала считывает с клавиатуры 2 строки: password и keyword(строки могу быть как с пробелами, так и без), затем передает их функции encryption, там над ними выполняются операции, и функция возвращает третью строку answer, длинна которой равна длинне pasword. Затем содержимое этой строки выводится на экран.
Проблема вот в чем: функция encryption не возвращала необходимое значение, поэтому я сделал переменную answer глобальной, это раз. Во вторых, cout<<answer выводит только строку до пробела, а мне нужно всю.
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
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <fstream.h>
 
void encryption(char keyword[256], char password[256]);
 
char answer[256];
 
int main()
{
    cout<<"Welcome to the Enigma+! (с)Aggressor \nFollow the instruction bellow:\n";
    do
    {
     cout<<"Enter the keyword (DO NOT enter any digits or special symbols, ONLY LETTERS!):\n ";
     char keyword[256];
     cin.getline(keyword, 256);
     if (keyword[0]=='0')
     {
                         break;
     }
     cout<<"\nType the word to encrypt: ";
     char password[2048];
     cin.getline(password, 2048);
     encryption(keyword, password);
     ofstream out;
//   out.open("Enigma.txt");
     cout<<"\nEncrypted word is: "<<answer<<"\nPress any key to continue or 0 to exit the program: ";
     char exit;
     cin>>exit;
     if (exit=='0')
     {
                 break;
     }
     getchar();
     }
     while (1==1);
    return 0;
}
 
void encryption(char keyword[256], char password[256])
{
//Здесь идет код функции, в результате которого переменная answer инициализируется некоторой строкой.
}
Повторю вопросы: 1)как мне сделать, чтобы encryption возвращала answer (мне советовали использовать указатели, но я в их вообще не понимаю, так что если они необходимые, покажите, какой, где и куда)
2)с помощью какой функции мне осуществлять вывод (аналог getline только для вывода)?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2008, 17:49     Передача строки в функцию и ее вывод
Посмотрите здесь:

Передача строки в функцию - C++
Здравствуйте. Помогите пожалуйста)) void concatenation_Str(char* string) { char buff; cout &lt;&lt; &quot;Введите добавляемые символы -&gt;...

Передача строки в функцию - C++
Добрый, вечер. Есть функция void Func(wstring st){ wcout&lt;&lt;st.at(i); //убрал ненужное, но смысл оставил. } Так вот, если я...

Передача строки в функцию - C++
Как передать строку s типа string в функцию?

Передача строки в дружественную функцию - C++
Доброго времени суток! Помогите пожалуйста исправить программу( было много попыток, но все тщетно), чтобы она работала, а именно заработали...

Передача в функцию строки и копирование - C++
Что это за безобразие выводит? #include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; const int MAX = 80; void reversit(char...

Передача строки в функцию system - C++
можно ли каким либо образом передать system значение String допустим есть string c=&quot;primer&quot;; system(c); чтобы system принял значение...

Передача строки string в функцию - C++
Завтра экзамен а я печатаю строки :D Что хочу: ввожу две строки, передаю их в функцию по указателю, сравниваю каждый символ и если они...

Передача строки в конструктор или в функцию - C++
Как передать в конструктор класса строку без массивов, да и в функцию как передать строку и дальше действия над ней производить?А то в...

Передача строки из вектора строк в функцию (исправить ошибку) - C++
Доброго все здравия, заполняю вектор строк, затем поочередно, каждая строка вектора передается в функцию. Все работает, но появляется...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.12.2008, 06:15     Передача строки в функцию и ее вывод #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 <stdio.h>
 
/* возвращает строку из функции двумя способами */ 
main()
{
    char *f1(char *);
    char *f2(char *);
    char word[100] = "any";
    
    printf("%s\n", f1(word));
    printf("%s\n", word);
    printf("%s\n", f2(word));
    printf("%s\n", word);
    return 0;
}
 
char *f1(char w[])
{
    static char s[100];
    
    sprintf(s, "%s+", w);
    return s;
}
 
char *f2(char w[])
{
    sprintf(w, "%s++", w);
    return w;
}
у тебя там answer уже приходит в количестве одного слова
cout << answer << endl;
сохраняет пробелы
Ответ Создать тему
Опции темы

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