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

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

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

Строки и указатели........ - C++

26.12.2009, 00:43. Просмотров 473. Ответов 1
Метки нет (Все метки)

Помогите написать прогу с помощью которой - вводится имя,фамилия,отчество а вывоится фамилия и инициалы то есть - Пушкин Александр Сергеевич - Пушкин А.С

Visual studio c++ - библиотека stdio
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2009, 00:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки и указатели........ (C++):

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

Указатели и указатели на указатели, а также типы данных - C++
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Указатели и строки - C++
Здравствуйте! Помогите решить такую задачу Найти в строке последовательности , состоящие из одного повтопяющегося символа, и заменить его...

Строки и указатели с++ - C++
1. С клавиатуры вводится полный путь к файлу. Напишите программу, которая выделяет из этой строки имя файла Пример: ...

Указатели на строки - C++
Есть следующий код: class Strings // класс с указателями на строки (размер которого равен 8) { public: char* str1; ...

Строки и указатели в C++ - C++
Проверить правильность расположения в тексте круглых скобок (количество открывающихся и закрывающихся скобок должно совпадать). Пользуясь...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,609
26.12.2009, 02:39 #2
Простой вариант:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <windows.h>
    
#define STRLEN 100
    
int main(void){
    char f[STRLEN], i[STRLEN], o[STRLEN];
    
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    printf("ФИО: ");
    scanf("%s %s %s", f, i, o);
    printf("%s %c.%c.\n", f, *i, *o);
    
    return 0;
}
Добавлено через 36 минут
Сложный:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
 
#define STRLEN 100
 
typedef struct {
    char *name;
    char *patronymic;
    char *surname;
} Person_t;
 
Person_t *newPerson(){
    char buf[STRLEN], *pC;
    Person_t *pP;
    
    if ( (pP = (Person_t*)malloc(sizeof(Person_t))) == NULL ){
        perror("Bad memory!\n");
        exit(1);
    }
    
    printf("Фамилия: ");
    if ( !fgets(buf, STRLEN, stdin) ){
        perror("Can't get string!\n");
        exit(1);
    }
    if ( pC = strrchr(buf, '\n') )
        *pC = '\0';
    if ( !*buf ){
        printf("Error! Empty string.\n");
        return NULL;
    }
    if ( ( pP->surname = strdup(buf) ) == NULL ){
        perror("Bad memory!\n");
        exit(1);
    }
    printf("Имя: ");
    if ( !fgets(buf, STRLEN, stdin) ){
        perror("Can't get string!\n");
        exit(1);
    }
    if ( pC = strrchr(buf, '\n') )
        *pC = '\0';
    if ( !*buf ){
        printf("Error! Empty string.\n");
        return NULL;
    }
    if ( ( pP->name = strdup(buf) ) == NULL ){
        perror("Bad memory!\n");
        exit(1);
    }
    printf("Отчество: ");
    if ( !fgets(buf, STRLEN, stdin) ){
        perror("Can't get string!\n");
        exit(1);
    }
    if ( pC = strrchr(buf, '\n') )
        *pC = '\0';
    if ( !*buf ){
        printf("Error! Empty string.\n");
        return NULL;
    }
    if ( ( pP->patronymic = strdup(buf) ) == NULL ){
        perror("Bad memory!\n");
        exit(1);
    }
    return pP;
}
 
void freePersonData(Person_t *p){
    if ( p->name != NULL ){
        free(p->name);
        p->name = NULL;
    }
    if ( p->patronymic != NULL ){
        free(p->patronymic);
        p->patronymic = NULL;
    }
    if ( p->surname != NULL ){
        free(p->surname);
        p->surname = NULL;
    }
}
 
char *personToString(const Person_t *pP, char *buf, size_t len){
    snprintf(buf, len, "%s %c.%c.", pP->surname, *(pP->name), *(pP->patronymic));
    return buf;
}
 
int main(void){
    Person_t *person;
    char str[STRLEN];
    
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    person = newPerson();
    printf("С Новым Годом, дорогой товарищ %s!\n", personToString(person, str, sizeof(str)));
    freePersonData(person);
    free(person);
    exit(0);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2009, 02:39
Привет! Вот еще темы с ответами:

Указатели на строки - C++
Доброго всем времени суток! Не понимаю почему указатели на строки возвращают всю строку char может содержать только один символ в...

Указатели и строки - C++
Здравствуйте. Учу указатели (и строки); появилась куча неясных мне моментов, поэтому прошу разъяснения. 1) const char* obj...

Указатели и строки - C++
1. В коде есть такой кусок: sc = stack.pop(); printf(&quot;#%s %d#&quot;, &amp;sc, sc); sc имеет тип unsigned int, понятно что там хранится...

Строки и указатели - C++
Выполнить задание двумя способами используя индексы и используя указатели при работе со строками. Удалить в строке все буквы “b”,...


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

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

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