С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 20.12.2021
Сообщений: 14
1

Можно ли использовать scanf/printf для переменной типа string

20.12.2021, 12:59. Показов 994. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main()
{
    string str, result;
    printf("Vvedite stroku: ");
    scanf_s("%ch", &str);
    for (int i = str.length() - 1; i >= 0; i--)
        result += str[i];
 
    printf("stroka naoborot = %ch\n", result);
    return 0;
}
Выводит не понять что, вместо слова наоборот
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2021, 12:59
Ответы с готовыми решениями:

для вводы и вывода использовать printf/scanf
помогите пожалуйста. ввести с клавиатуры кол-во студентов в группе,фамилии и их средние баллы(с...

Использовать функции scanf() и printf()
Помогите пожалуйста сделать программу: Построить описание класса, содержащего информацию о почтовом...

Как в программе использовать printf и scanf
как в этой программе использовать printf и scanf #include &quot;stdafx.h&quot; #include &lt;iostream&gt;...

Если вместо scanf() и printf() использовать cin и cout, то ничего не выводится
Доброго времени суток! Есть код #include &lt;stdio.h&gt; #include &lt;iostream&gt; int main () { int n,...

Можно ли переменной типа String присвоить кодировку (чат vk)
Подскажите можно ли переменной типа String присвоить кодировку? Проблема в том,что пишу оффлайн...

11
0 / 0 / 0
Регистрация: 20.12.2021
Сообщений: 14
20.12.2021, 13:01  [ТС] 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main()
{
    string str, result;
    printf("Vvedite stroku: ");
    scanf_s("%ch", &str);
    for (int i = str.length() - 1; i >= 0; i--)
        result += str[i];
 
    printf("stroka naoborot = %ch\n", result);
    return 0;
}
Выводит вместо слова наоборот непонятные символы
0
Эксперт функциональных языков программированияЭксперт С++
4172 / 2003 / 961
Регистрация: 01.06.2021
Сообщений: 7,068
Записей в блоге: 6
20.12.2021, 13:21 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
int main () 
{
    string text;
    getline(cin, text);
    reverse(text.begin(), text.end());
    cout << text;
}
0
0 / 0 / 0
Регистрация: 20.12.2021
Сообщений: 14
20.12.2021, 13:29  [ТС] 4
Цитата Сообщение от Royal_X Посмотреть сообщение
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main ()
{
    string text;
    getline(cin, text);
    reverse(text.begin(), text.end());
    cout << text;
}
можно, пожалуйста, чтобы вывод осуществлялся через printf&
0
Эксперт функциональных языков программированияЭксперт С++
4172 / 2003 / 961
Регистрация: 01.06.2021
Сообщений: 7,068
Записей в блоге: 6
20.12.2021, 13:41 5
Лучший ответ Сообщение было отмечено Zajar как решение

Решение

Zajar, конечно, можно, но в C++ нужно избегать printf, который является C-style выводом.

замените последнюю строку на

C++
1
printf("%s", text.c_str());
и не забудьте прописать #include <cstdio> для printf
0
0 / 0 / 0
Регистрация: 20.12.2021
Сообщений: 14
20.12.2021, 13:45  [ТС] 6
Цитата Сообщение от Royal_X Посмотреть сообщение
и не забудьте прописать #include <cstdio> для printf
спасибо большое
0
Модератор
Эксперт С++
13712 / 10911 / 6477
Регистрация: 18.12.2011
Сообщений: 29,135
20.12.2021, 14:02 7
Цитата Сообщение от Zajar Посмотреть сообщение
scanf_s("%ch", &str);
Впервые вижу такую спецификацию ("%ch").
Дайте ссылку, где Вы ее нашли?
0
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,520
Записей в блоге: 1
20.12.2021, 14:03 8
scanf_s("%ch", &str);
чтение строки это
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <string.h>
 
int main()
{
    char str[256];
    printf("Vvedite stroku: ");
    scanf_s("%s", str);
    int len = strlen(str);
    for (int i = len-1, j=0; i > j; i--, j++)
    {
       char tmp=str[i];
       str[i] = str[j];
       str[j] = tmp;
    } 
    printf("stroka naoborot = %ch\n", result);
    return 0;
}
0
0 / 0 / 0
Регистрация: 20.12.2021
Сообщений: 14
20.12.2021, 14:14  [ТС] 9
Цитата Сообщение от zss Посмотреть сообщение
Впервые вижу такую спецификацию ("%ch").
Дайте ссылку, где Вы ее нашли?
https://ravesli.com/urok-35-si... nnyh-char/
0
Модератор
Эксперт С++
13712 / 10911 / 6477
Регистрация: 18.12.2011
Сообщений: 29,135
20.12.2021, 14:18 10
Zajar, по этой ссылке нет ни слова о scanf/print.
А ch там просто имя переменной имеющей тип char.
0
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,520
Записей в блоге: 1
20.12.2021, 14:20 11
Zajar, ну тип данных чар... и при чём тут строка формата функции printf/scanf?
Огромная ошибка новичка в программировании - что-то там додумывать про язык о том, "как он по логике вещей должен работать".
Не надо это делать, на первых порах используйте только те строчки языка, которые вы точно видели в примерах, в учебных материалах.
0
9 / 7 / 2
Регистрация: 16.12.2021
Сообщений: 107
20.12.2021, 18:10 12
вобще в чем прикол в c++ использовать printf и всё остальное из с
в с++ нужно использовать cout<< cin>>
0
20.12.2021, 18:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2021, 18:10
Помогаю со студенческими работами здесь

Как можно найти в переменной типа string вхождение подстроки?
здравствуй Народ. у меня к тебе есть пара вопросов: 1. можно ли в vba каким либо образом...

Заменить scanf и printf на операторы, которые можно связать с Edit
Здраствуйте! Помогите пожалуйста решить одну проблему! У меня есть программа написана на Си, с...

Использовать операторы < и > для переменной string
Добрый день! string year = &quot;60&quot;; if (year &lt; 100 &amp;&amp; year &gt; 50) year = &quot;19&quot; + year; ...

Как исправить E0144 значение типа "System::String ^" нельзя использовать для инициализации сущности типа
Как исправить E0144 значение типа &quot;System::String ^&quot; нельзя использовать для инициализации сущности...

Добавить свойство для переменной типа string
Приветствую! Раньше не сталкивался с такими задачи, всвязи с чем вопрос: есть переменная string...

Переменную типа string вывести в printf?
как в переменную типа string вывести в printf? #include &lt;stdio.h&gt; // для принтф #include...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru