Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 40, средняя оценка - 4.93
Praz
1 / 1 / 1
Регистрация: 28.03.2012
Сообщений: 9
#1

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

01.07.2012, 12:47. Просмотров 6730. Ответов 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 удаляет из строки начальные и конечные пробелы и возвращает указатель на преобразованную строку
Дали задание в ВУЗе. Назначение программы: Функция alltrim удаляет из строки...

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

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

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

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

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

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

только вроде нельзя возвращать указатель на память, выделенную в этой функции, т.к память освободится и данные будут утеряны.
1
igorrr37
1863 / 1481 / 749
Регистрация: 21.12.2010
Сообщений: 2,473
Записей в блоге: 11
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
Сообщений: 13
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
Привет! Вот еще темы с решениями:

Функция формирует массив и возвращает указатель на него
Задание: написать функцию с аргументами: вещественное х, целое n. Функция...

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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