Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Указатели символов и функций

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

StillPhelix



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе время суток!
В visual studio 2010 был создан проект CLR console application код которого приведен ниже. Проблема заключается в том, что некорректно выводятся результаты работы функции char* strsave(char *s).
 

Код:
// ptrSimbAndFunc.cpp : main project file.
 
#include "stdafx.h"
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<string.h>
#include<tchar.h>
using namespace System;
#define eof -1
#define maxline 1000
 
int getline(char s[], int lim)
{
    int i,c;
    for(i=0; i<lim-1 && (c=getchar())!=eof && c!='\n'; i++)
        s[i]=c;
    s[i]='\0';
    return i++;
}
 
void strcpy1(char s[], char t[])
{
    int i=0;
    while((t[i]=s[i])!='\0')
        i++;
}
 
void strcpy2(char *s, char *t)
{
    while((*t=*s)!='\0')
    {
        s++;
        t++;
    }
}
 
char* strsave(char *s)
{
    char *p;
    int i=strlen(s)+1;
    p= (char*) malloc(i);
    if((p!=NULL))
        strcpy2(p,s);
    return p;
}
 
int main()
{
    printf("Enter string for strcpy1 >");
    char s[maxline], t[maxline];
    getline(s,maxline);
    strcpy1(s,t);
    printf("inp.string=%s\nout.string=%s\n",s,t);
 
    printf("Enter string for strcpy2 >");
    getline(s,maxline);
    strcpy2(&s[0],&t[0]);
    printf("inp.string=%s\nout.string=%s\n",s,t);
 
    printf("Enter string for strsave >");
    getline(s,maxline);
    char*p=strsave(&s[0]);
    printf("Saved string=%s\n",p);
    _getch();
}

Всего записей: 173 | Зарегистр. 18-08-2013 | Отправлено: 23:19 13-08-2015
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
strcpy2(s,p);

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 10:57 14-08-2015
StillPhelix



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, ne_viens, всё работает.

Всего записей: 173 | Зарегистр. 18-08-2013 | Отправлено: 11:49 14-08-2015
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Указатели символов и функций


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru