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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 40, средняя оценка - 4.93
Praz
1 / 1 / 0
Регистрация: 28.03.2012
Сообщений: 9
#1

Функция возвращает строку (или указатель на начало строки) - C++

01.07.2012, 12:47. Просмотров 5788. Ответов 3
Метки нет (Все метки)

Подскажите пожалуйста. Застрял на тривиальной задачке. Никак не могу добится чтобы функция возвращала корректно строку.(правильнее наверное будет сказать указатель на начало строки). Вот код примера на котором пробую:
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
#include<string.h>
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
 
char str_rev(char *s1)
{
    char s[100]="Hello";
    *s1=s[0];
    return *s1;
}
 
main()
{
 char s[100],r[100];
 int i=0,j=0;
 *r=str_rev(s);
 for(i=0;i<strlen(r);i++)
    cout<<r[i];
 cout<<endl;
 puts(r);
 getch();
 return 0;
}
Пробовал уже по разному - ничего не выходит, на выходе - краказябры.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2012, 12:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция возвращает строку (или указатель на начало строки) (C++):

Функция alltrim удаляет из строки начальные и конечные пробелы и возвращает указатель на преобразованную строку - C++
Дали задание в ВУЗе. Назначение программы: Функция alltrim удаляет из строки начальные и конечные пробелы и возвращает указатель на...

Функция, получающая подстроку, возвращает испорченный указатель на строку - C++
Пытаюсь выделить подстроку в Microsoft Visual C++ 2013, чтобы убрать путь к файлу и оставить только имя файла. wchar_t *...

Функция с указателем и индексом(Удаляет в строке лидирующие пробелы. Возвращает указатель на преобразованную строку.) - C++
Ребята помогите зачет получить, на парах не был..( Написать следующие функции в двух вариантах: с использованием индексов и...

Функция принимает указатель на void и возвращает указатель на int - C++
Запишите прототип функции, которая принимает указатель на void и возвращает указатель на int.

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

Функция получает массив указателей на строки и возвращает строку в динамической памяти, содержащую объединенный текст из входных строк - C++
Функция получает массив указателей на строки и возвращает строку в динамической памяти, содержащую объединенный текст из входных строк.

3
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
01.07.2012, 13:33 #2
чтобы возвращать указатель, нужно соответственно объявить функцию
C++
1
char* str_rev(char *s1)
т.е указать, что она возвращает указатель на char.
переменные в main тоже нужно объявить как указатели.
еще вы в аргументе передаете указатель, поэтому его можно и не возвращать.

только вроде нельзя возвращать указатель на память, выделенную в этой функции, т.к память освободится и данные будут утеряны.
1
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
01.07.2012, 14:01 #3
как вариант - std::unique_ptr
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <memory>
#include <cstring>
 
std::unique_ptr<char[]> F()
{
    const char* p = "Hello, world!";
    std::unique_ptr<char[]> up(new char[std::strlen(p) + 1]);
    std::strcpy(up.get(), p);
    return up;
}
 
int main()
{
    std::cout << F().get() << std::endl;
    return 0;
}
0
visokii
-2 / 0 / 0
Регистрация: 23.06.2010
Сообщений: 8
18.12.2014, 00:32 #4
Можно просто в 8ой строке char s[100]="Hello"; написать static char s[100]="Hello";
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2014, 00:32
Привет! Вот еще темы с ответами:

Функция формирует массив и возвращает указатель на него - C++
Задание: написать функцию с аргументами: вещественное х, целое n. Функция формирует массив у: уk=\frac{{x}^{2k}}{k!} k=0,1,..,n-1 и...

Как функция возвращает указатель на структуру в массив указателей - C++
Друзья, следующий вопрос, у меня есть функция, которая: создает указатель на структуру-&gt; выделяет память-&gt; заполняет из файла-&gt; и...

Функция fopen возвращает нулевой указатель (Visual Studio) - C++
Здраствуйте) У меня возникла очень странная проблема.просто мистика. С чем может быть связано возвращение нулевого указателя в...

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


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

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

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