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

Указатель char* - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ задача с++, при любых числах пишет true! http://www.cyberforum.ru/cpp-beginners/thread552641.html
//Сумма двух первых цифр заданного четырехзначного числа //равна сумме двух его последних цифр. #include<iostream.h> #include<conio.h> #include<stdio.h> #include<math.h> int main(void){ int odin,des,sot,tis; int a; cout<<"Vvedit 4-oh znachne chislo";
C++ ОДУ 1-го порядка методом Эйлера очень нужна программа к курсовой на тему :Решение задачи Коши для обыкновенного дифференциального уравнения первого порядка методом Эйлера Добавлено через 10 часов 26 минут очень нужна программа к курсовой на тему :Решение задачи Коши для обыкновенного дифференциального уравнения первого порядка методом Эйлера http://www.cyberforum.ru/cpp-beginners/thread552630.html
С++ debian - программа работает странно C++
Добрый день всем. может кто знает в чём дело вот программа #include <iostream> #include <string> #include <fstream> #include <map> #include <cstdlib> //using namespace std;
C++ Задача на побитовые операции
Дана задача,помогите пожалуйста с решением или подскажите примеры подобных программ. Сама задача: Даны три целых числа А, В, С. Если в числах установлены биты, заданные в первой строке задания (табл. 6.1), то выполнить расчет выражения, записанного в первой строке, иначе, если в числах А, В, С установлены биты, заданные во второй строке задания, то выполнить расчет выражения, записанного во...
C++ Массив, содержащий сведения о претендентах на руку и сердце http://www.cyberforum.ru/cpp-beginners/thread552598.html
Здравствуйте помогите пожалуйста написать программу для курсовой! Задача-В файле записан массив,содержащий сведения о претендентах на руку и сердце.Сведения могут содержать следующую информацию:женскую Ф.И.О ,возраст, рост, цвет волос, цвет глаз, зарплату,наличие машины,квартиры.сформулируйте критерии (2-3), по которым претенденты будут выбираться.напишите программу,предназначенную для ввода...
C++ Структура: Печати сведений о более подходящих претендентах в зависимости от того или иного критерия Здравствуйте помогите пожалуйста написать программу для курсовой! Задача-В файле записан массив,содержащий сведения о претендентах на руку и сердце.Сведения могут содержать следующую информацию:женскую Ф.И.О ,возраст, рост, цвет волос, цвет глаз, зарплату,наличие машины,квартиры.сформулируйте критерии (2-3), по которым претенденты будут выбираться.напишите программу,предназначенную для ввода... подробнее

Показать сообщение отдельно
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
19.04.2012, 16:32     Указатель char*
Цитата Сообщение от balrak Посмотреть сообщение
Kuzia domovenok, теперь понял ^^
Но все же , когда печатается

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

Добавлено через 29 секунд
Kuzia domovenok, да я ж не успеваю так быстро))

Добавлено через 15 минут
Может я не правильно понимаю то что сделал?
Я хотел функции передать указатель на строку, что бы строка не копировалась заново
далее в функции найти первый символ , после начальных пробелов
изменить указатель , так что бы он указывал на первый символ найденый раньше
Я тебе ещё раз повторю: у тебя тут несколько ошибок:
- Ты двигаешь указатель на начало строки несколько раз.
p=" abcd"
первый: в цикле while(*p++==' ')
//p="abcd" i=3
второй p=&(p[i])// p="d"
-После возврата из функции p как и любой другой аргумент функции остаётся прежним.
аналогично обычному аргументу функции, все арифметические операции с указателем не играют никакой роли после выхода.
пример
C++
1
2
3
4
5
6
7
8
9
void new_s(char* p, int i){
while(p[i]==' ') i++;
}
int main(){
char* str="sdfd";
int i=0;
new_s(str, i);
//выход из new_s переменная i всё ещё равна нулю, также и указатель в твоём примере.
}
Надо сделать так:
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 <iostream> 
#include <cstring> 
char* new_string(char* p)
{
    int len = 0;
    char* out;
    while(*p++ == ' ');
    len=strlen(p);
    out=new char[len];
    strcpy(out, p);
    return out;
}
 
void main()
{
    char* p = new char[256];
    char* s;
    std::cout << "Please enter ur string\n";
    std::cin.get(p,256);
    s=new_string(p);
    std::cout << s << '\n';
    delete[] p;
    delete[] s;
}
не проверял, писал прямо в форуме.
это с созданием новой строки и копированием в неё.
 
Текущее время: 17:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru