Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
1

Напишите варианты библиотечных функций strncpy, strncat и strncmp

26.09.2013, 08:40. Показов 1951. Ответов 11
Метки нет (Все метки)

вот такая задача,
Напишите варианты библиотечных функций strncpy, strncat и strncmp, которые оперируют с первыми символами своих аргументов, число которых не превышает n. Например, strncpy(t, s, n) копирует не более n символов строки t в s. Полные описания этих функций содержатся в приложении В.

Добавлено через 8 минут
можно только функцию strncpy
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2013, 08:40
Ответы с готовыми решениями:

Аналог strncpy и strncmp для типа string
Подскажите, как проводить операции сравнения и копировании с двумя строками типа string, при чём...

Не применяя библиотечных функций, напишите код функции
Не применяя библиотечных функций, напишите код функции для вычисления чисел типа int и double в...

Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h
Помогите решить задания: 1.Дано натуральное число n. Найти разность между первой цифрой этого...

Использование библиотечных функций stdio.h
1. Дан текстовый фал, содержащий целые числа, разделенные пробелами. Определить является ли...

11
214 / 213 / 114
Регистрация: 14.01.2013
Сообщений: 459
26.09.2013, 09:21 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Тут такие проблемы: strncpy уже существует и как раз она принимает 3 параметра. Можно конечно перегрузить этот метод, но тогда нужно либо больше параметров либо меньше. Ещё вариант назвать функцию другим именем, например strncpy1. Я вот сделал пример с 4 параметрами (первый это что копируем, второй куда, третий сколько символов копируем из первой строки, четвертый начиная с какого символа строки s вставляем символы строки t). Ну а там дальше сам доработаешь как тебе удобнее:
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
25
26
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <string.h>
 
using namespace std;
 
string strncpy(string t, char s[],int n,int t1)
{
    int i,j;
    for(i=t1,j=0;i<n+t1,j<n;i++,j++)
    {
        s[i]=t[j];
    }
    return s;
}
 
int main()
{
    setlocale(LC_ALL,"Russian");
    char s[20]={'н','а','ч','а','л','о'};
    strncpy("Привет!",s,3,4);
    cout<<s;
    system("PAUSE > void");
    return 0;
}
1
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
26.09.2013, 10:09  [ТС] 3
es_,
8 строка
между strncpy и (string t...) выдает ошибку declaration Systax error
0
214 / 213 / 114
Регистрация: 14.01.2013
Сообщений: 459
26.09.2013, 10:15 4
хм.. всё перекопировали?
C++
1
#include <string.h>
Это не забыли? У меня компилятор не ругается. Как вариант попробуйте переименовать strncpy
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
26.09.2013, 10:25  [ТС] 5
Цитата Сообщение от es_ Посмотреть сообщение
хм.. всё перекопировали?
C++
1
#include <string.h>
Это не забыли? У меня компилятор не ругается. Как вариант попробуйте переименовать strncpy
переписал всё, но из 4 библиотек оставил только эти:
#include <string.h>
#include <stdio.h>
с остальными ругаеться ещё больше
0
214 / 213 / 114
Регистрация: 14.01.2013
Сообщений: 459
26.09.2013, 10:33 6
Ну с первым понятно.. Среда разработки у тебя какая? CodeBlocks?
Но вот то, что на
C++
1
#include <iostream>
ругается.. это вряд ли, проблема в чём то другом.
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
26.09.2013, 10:37  [ТС] 7
borland c++
version 3.1
0
178 / 23 / 7
Регистрация: 16.05.2013
Сообщений: 181
26.09.2013, 10:40 8
Цитата Сообщение от es_ Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
string strncpy(string t, char s[],int n,int t1)
{
* * int i,j;
* * for(i=t1,j=0;i<n+t1,j<n;i++,j++)
* * {
* * * * s[i]=t[j];
* * }
* * return s;
}
Интересно а, как это переменные char и string - работают между собой в цикле, и не ругается компилятор на несоответствие типов?

Добавлено через 2 минуты
И почему функция возвращает чаровую переменную, хотя сама функция стринговая, я чего-то не знаю, может дадите статьи по этому поводу?
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
26.09.2013, 10:40  [ТС] 9
Цитата Сообщение от Нету имени Посмотреть сообщение
Интересно а, как это переменные char и string - работают между собой в цикле, и не ругается компилятор на несоответствие типов?

нет только одну ошибку выдает в 8 строке declaration Systax error
0
178 / 23 / 7
Регистрация: 16.05.2013
Сообщений: 181
26.09.2013, 10:42 10
Цитата Сообщение от Tolib1 Посмотреть сообщение
borland c++
version 3.1
Цитата Сообщение от es_ Посмотреть сообщение
#include "stdafx.h"
Цитата Сообщение от es_ Посмотреть сообщение
#include <iostream>
в висуал студио многие библиотеки вшиты в одну, тоесть
#include <string> в которой хранится обьект std::string , вшит в #include <iostream>
я так думаю в борланде такого нету, попробуйте подключить библиотеку, #include <string>
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
26.09.2013, 10:43  [ТС] 11
еще в 6 строке между namespace и std, такая же
0
178 / 23 / 7
Регистрация: 16.05.2013
Сообщений: 181
26.09.2013, 11:03 12
Цитата Сообщение от Tolib1 Посмотреть сообщение
еще в 6 строке между namespace и std, такая же
попробуйте в онлайн-компиляторе скомпилировать, если там всё нормально, значит дело в борланде
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2013, 11:03

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

БЕЗ использования библиотечных функций
Помогите написать программу... Написать программу, которая (без использования библиотечных функций...

Использование библиотечных функций string.h
Задание 3. Использование библиотечных функций string.h 1. Даны текстовая строка и слово (например,...

Где найти описание библиотечных функций?
можно ли скачать подробное описание библиотечных функций c++ и типов их аргументов? как на msdn...

Работа со строкой без библиотечных функций
Дана строка типа &quot;abc xyz dea&quot; На выходе расположить слова в алфавитном порядке первых букв, т.е....


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

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

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