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

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

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

Описать функцию, что добавляет N символов строки S2 в конец строки S1 - C++

13.04.2010, 16:36. Просмотров 597. Ответов 5
Метки нет (Все метки)

Помогите пожалуйста с выполнением лабораторной работы.
Задание:
1. Разработать и реализовать функцию на языке С.
2. Провести ее тестирование с использованием драйвера.

Обозначение функции: STRNCAT(S1,S2,N);
Содержание функции: Добавляет N символов строки S2 в конец строки S1. Возвращает ссылку на результат.

Заранее большое спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2010, 16:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Описать функцию, что добавляет N символов строки S2 в конец строки S1 (C++):

В конец каждой строки текстового файла дописать количество символов этой строки - C++
Помогите, нужно : "В конец каждой строки текстового файла дописать количество символов этой строки". Получается только в начало, не знаю...

Описать функцию AddLeftDigit (D, K), что добавляет к целому положительному числу K слева цифру D - C++
Описать функцию AddLeftDigit (D, K), что добавляет к целому положительному числу K слева цифру D (D - входной параметр целого типа, лежащий...

Добавить в конец каждой строки необходимо количество «*» что бы выровнять текст по правому краю большей строки - C++
Дано некоторое количество строк, не больше как размер текстового окна. Добавить в конец каждой строки необходимо количество «*» что бы...

Удалить конец строки символов. Ввести кол-во удаляемых символов , вывести результат ,String ,задачка,С++ - C++
Удалить конец строки символов. Ввести количество удаляемых символов , вывести результат на печать . Помогите плиз с задачкой. тема :...

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

Как определить конец введенной строки и взять последние 5 символов? - C++
Ребят, подскажите пожалуйста. вот код программы, но мне нужно, чтобы она считывала не все символы введенные с клавиатуры, а например...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
13.04.2010, 18:23 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
27
28
29
#include "stdafx.h"
#include <stdio.h>
#include<string.h>
#include <conio.h>
#include <iostream>
using namespace std;
void STRNCAT(char *,char *,int );
int _tmain(int argc, _TCHAR* argv[])
{
STRNCAT("hello","world",3);
_getch();
    return 0;
}
void STRNCAT(char *s1,char *s2,int n)
{
int newsize = strlen(s1)+n;
int i;
int j;
char a[100]; // your new array; 
char temparr[100];// arr for s2 symbols;
for(i=0;i<n;i++)
temparr[i]=s2[i];
for(i=0;i<strlen(s1);i++)
a[i]=s1[i];
for(i=strlen(s1),j=0;i<newsize,j<n;i++,j++)
a[i]=temparr[j];
for(i=0;i<newsize;i++)
std::cout<<a[i];
}
Trigun
4 / 4 / 0
Регистрация: 02.04.2010
Сообщений: 22
13.04.2010, 20:18 #3
в смысле ссылку на результат????
может всетаки указатель на преобразованную строку????
kirjushyk
60 / 22 / 2
Регистрация: 13.03.2010
Сообщений: 65
13.04.2010, 20:50 #4
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 <stdlib.h>
#include <string.h>
#include <stdio.h>
 
char *STRNCAT(const char *S1, const char *S2, size_t N)
{
    size_t l1, l2;
    char *result;
    l1 = strlen(S1);
    l2 = strlen(S2);
    if (N > l2)
        N = l2;
    result = malloc(l1 + N + 1);
    memcpy(result, S1, l1);
    memcpy(result + l1, S2, N);
    result[l1 + N] = 0;
    return result;
}
 
int main(int argc, char *argv[])
{
    char *string = STRNCAT("It would be ", "visible. It would be invisible.", 7);
    printf("%s\n", string);
    free(string);
    return 0;
}
Kanibalus
0 / 0 / 0
Регистрация: 02.07.2009
Сообщений: 11
14.04.2010, 18:26  [ТС] #5
Цитата Сообщение от Trigun Посмотреть сообщение
в смысле ссылку на результат????
может всетаки указатель на преобразованную строку????
Видимо все таки указатель, в задании написано ссылку, наверно ошибочно.

Спасибо большое отозвавшимся. Постараюсь разобраться в коде пока не очень знакомого для меня языка С.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
14.04.2010, 20:04 #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Взято из исходников FreeBSD (/usr/src/lib/libc/string/strncat.c)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
 * Concatenate src on the end of dst.  At most strlen(dst)+n+1 bytes
 * are written at dst (at most n+1 bytes being appended).  Return dst.
 */
char *
strncat(char * __restrict dst, const char * __restrict src, size_t n)
{
        if (n != 0) {
                char *d = dst;
                const char *s = src;
 
                while (*d != 0)
                        d++;
                do {
                        if ((*d = *s++) == 0)
                                break;
                        d++;
                } while (--n != 0);
                *d = 0;
        }
        return (dst);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2010, 20:04
Привет! Вот еще темы с ответами:

Передать в функцию указатель на начало и конец строки квадратной матрицы - C++
Дана обычная квадратная матрица, размером matrixSize. Память под неё выделена с помощью оператора new: #include &lt;iostream&gt; #include...

Проверить что символ не конец строки - C++
как проверить что в char A; лежит значение hex (0) т.е. мне нужно проверить, что в это не символ конца строки?

Получить из строк новую строку, содержащюю первые N1 символов строки S1 и последнии N2 символов строки S2 - C++
помогите написать программу на двух разных классах! 2) Даны целые положительные числа N1 и N2 и строки S1 и S2. Получить из этих строк...

Как первые два символа строки переставить в конец этой строки? - C++
Собственно вопрос


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.04.2010, 20:04
Ответ Создать тему
Опции темы

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