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

Строки.Си - C++

Восстановить пароль Регистрация
 
Sirena
5 / 0 / 1
Регистрация: 20.01.2010
Сообщений: 17
22.01.2010, 15:45     Строки.Си #1
Написать функцию, которая складывает одну строку с n символами другой строки
не использовать strncat
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2010, 15:45     Строки.Си
Посмотрите здесь:

C++ как сделать из строки массив из символов этой строки
C++ Рассортировать строки динамической матрицы по наибольшему элементу строки.
C++ Строки,копирование всех цифр из одной строки в другую
C++ Отсортировать цифры, символы и буквы из строки в отдельные строки
Разработка функции (размещение строки s1 в середине строки s2 длиной l) C++
C++ Структуры и строки (как поменять значение строки в структуре?)
C++ Вводятся 2 строки. Перевернуть обе строки, склеить и вывести
C++ Даны строки s, s0. Найти количество вхождений строки s0 в строку s

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
22.01.2010, 16:15     Строки.Си #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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
 
/* Написать функцию, которая складывает одну строку с n символами другой строки */
char *strncat(char *targ, const char *src, int cnt){
    char *p;
    if ( !targ || !src )
        return NULL;
    for ( p = targ; *p; ++p )
        ;
    while ( cnt-- && ( *p++ = *src++ ) )
        ;
    *p = '\0';
    return targ;
}
 
char *strrchr(const char *s, int ch){
    const char *p;
    if ( !s )
        return NULL;
    for ( p = s; *p; ++p )
        ;
    for ( --p; p >= s && *p != ch; --p )
        ;
    return ( p < s ) ? NULL : (char*)p;
} 
 
int main(void){
    char str1[BUFSIZ], str2[BUFSIZ], *p;
    int n;
    printf("First: ");
    if ( !fgets(str1, BUFSIZ, stdin) )
        return 1;
    if ( p = strrchr(str1, '\n') )
        *p = '\0';
    printf("Second: ");
    if ( !fgets(str2, BUFSIZ, stdin) )
        return 1;
    if ( p = strrchr(str2, '\n') )
        *p = '\0';
    printf("Number of characters: ");
    if ( scanf("%d", &n) != 1 )
        return 1;
    printf("Result: %s\n", strncat(str1, str2, n));
    
    return 0;
}
Ещё можно замутить strlen() и проверять первую строку на предмет переполнения...
Yandex
Объявления
22.01.2010, 16:15     Строки.Си
Ответ Создать тему
Опции темы

Текущее время: 17:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru