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

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

Войти
Регистрация
Восстановить пароль
 
Tolib1
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
#1

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

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

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

Добавлено через 8 минут
можно только функцию strncpy
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2013, 08:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Напишите варианты библиотечных функций strncpy, strncat и strncmp (C++):

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

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

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

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

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

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

11
es_
203 / 203 / 46
Регистрация: 14.01.2013
Сообщений: 455
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
Tolib1
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
26.09.2013, 10:09  [ТС] #3
es_,
8 строка
между strncpy и (string t...) выдает ошибку declaration Systax error
0
es_
203 / 203 / 46
Регистрация: 14.01.2013
Сообщений: 455
26.09.2013, 10:15 #4
хм.. всё перекопировали?
C++
1
#include <string.h>
Это не забыли? У меня компилятор не ругается. Как вариант попробуйте переименовать strncpy
0
Tolib1
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
es_
203 / 203 / 46
Регистрация: 14.01.2013
Сообщений: 455
26.09.2013, 10:33 #6
Ну с первым понятно.. Среда разработки у тебя какая? CodeBlocks?
Но вот то, что на
C++
1
#include <iostream>
ругается.. это вряд ли, проблема в чём то другом.
0
Tolib1
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
26.09.2013, 10:37  [ТС] #7
borland c++
version 3.1
0
Нету имени
177 / 22 / 2
Регистрация: 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
Tolib1
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
26.09.2013, 10:40  [ТС] #9
Цитата Сообщение от Нету имени Посмотреть сообщение
Интересно а, как это переменные char и string - работают между собой в цикле, и не ругается компилятор на несоответствие типов?

нет только одну ошибку выдает в 8 строке declaration Systax error
0
Нету имени
177 / 22 / 2
Регистрация: 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
Tolib1
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
26.09.2013, 10:43  [ТС] #11
еще в 6 строке между namespace и std, такая же
0
Нету имени
177 / 22 / 2
Регистрация: 16.05.2013
Сообщений: 181
26.09.2013, 11:03 #12
Цитата Сообщение от Tolib1 Посмотреть сообщение
еще в 6 строке между namespace и std, такая же
попробуйте в онлайн-компиляторе скомпилировать, если там всё нормально, значит дело в борланде
0
26.09.2013, 11:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2013, 11:03
Привет! Вот еще темы с ответами:

Есть ли способ просмотреть код библиотечных функций? - C++
Жутко хочется посмотреть, как устроена, скажем, функция gotoxy из conio.h. Но в заголовочном файле бесконечные отсылки к разным файлам и...

Строки и использование библиотечных функций для их обработки - C++
Нужно решить на Си. Напечатать слова, входящие в предложение, в алфавитном порядке.

Записать тригонометрические выражения посредством библиотечных функций и вычислить их - C++
Нужно написать программу, в которой пользователь вводит альфа(alpha), а программа бы считывала и выводила z1 и z2 z1=cos в квадрате от...

Найти количество слов в строке с использованием библиотечных функций string.h - C++
Найти количество слов в строке с использованием библиотечных функций string.h на языке С. Помогите Не дублируйте темы!


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

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

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