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

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

Восстановить пароль Регистрация
 
Romksuper
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 31
19.01.2010, 20:07     Строки в С... #1
Вот в С разбираюсь со многим, а вот со строками......никак!!! Дан список из N человек в форме: Фамилия Имя Отчество. Выдать список в форме: Фамилия И.О.
Напишите, как это делается, я реально не врубаю......к сожалению
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2010, 20:07     Строки в С...
Посмотрите здесь:

строки, именно строки C++
C++ С-строки, string-строки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Radjuk
 Аватар для Radjuk
134 / 68 / 12
Регистрация: 10.10.2009
Сообщений: 187
19.01.2010, 20:13     Строки в С... #2
а здесь вообще через структуру ....

Добавлено через 58 секунд
создаете структуру с И.Ф.О. вносите в нее даные через цыкл и потом также выводите
Romksuper
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 31
19.01.2010, 20:20  [ТС]     Строки в С... #3
можно поподробнее.....я действительно слабо понимаю, о чнм речь
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
19.01.2010, 20:38     Строки в С... #4
да уж...тут однозначно не строки. Здесь http://www.mir-koda.ru/full_leson_cpp.php?id=20 можно прочесть про сами структуры. Нужно создать структуру, ввод элементов структуры, и их реализацию, а после сделать запрос на нужный элемент.
Romksuper
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 31
19.01.2010, 20:40  [ТС]     Строки в С... #5
НУ НЕУЖЕЛИ ВСЕ ТАК СЛОЖНО_((((((
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
19.01.2010, 20:41     Строки в С... #6
ну почему же. Всё довольно-таки просто, вся цель чтобы понять) я тоже думал, что сложно. а потом понравилось ^^
http://www.cyberforum.ru/cpp-beginne...read86852.html вот здесь вы можете посматреть пример) что-то для себя найдёте, я уверен.
Romksuper
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 31
19.01.2010, 20:49  [ТС]     Строки в С... #7
я вообще новичок, итак еле еле с матрицами разобрался, а тут задание по класу "работа со строками" а теперь оказывается что это структуры, а сдавать послезавтра. Пойду выброшусь с окна.......

Добавлено через 4 минуты
Ни у кого нету подобной программы????
Radjuk
 Аватар для Radjuk
134 / 68 / 12
Регистрация: 10.10.2009
Сообщений: 187
19.01.2010, 20:49     Строки в С... #8
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
struct names
{
 char name[15];
 char lname[25];
 char otch[20];
};
 
void main()
{
int n;names *s;
cout<<"Enter count of peoples:";
cin>>n;
 
for(int i=0;i<n;i++)
{
cin>>s[i].name;
cin>>s[i].lname;
cin>>s[i].otch;
}
 
for(i=0;i<n;i++)
{
cout<<s[i].name;
cout<<s[i].lname;
cout<<s[i].otch;
}
free(s);
}
Romksuper
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 31
19.01.2010, 21:03  [ТС]     Строки в С... #9
Я так понимаю, здесь библиотека iostream, да????
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
19.01.2010, 21:05     Строки в С... #10
да, подключай.
Romksuper
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 31
23.01.2010, 18:06  [ТС]     Строки в С... #11
Выбрасиват при компиляции на вводе фамилии
и на выводе не выводит Фамилия И.О
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2295 / 1665 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
23.01.2010, 18:30     Строки в С... #12
Romksuper,
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
#include <stdio.h>
#include <stdlib.h>
 
#define MAX_LENGHT 32
 
struct FullName{
  char surname [MAX_LENGHT];
  char name    [MAX_LENGHT];
  char lastname[MAX_LENGHT];
};
 
int main()
{
  int       n    = 0;
  FullName* list = NULL;
  int       i;
 
  printf("Number of people: ");
  scanf("%d", &n);
 
  list = (FullName*)malloc(sizeof(FullName) * n);
 
  for(i = 0; i < n; ++i){
    printf("Man %d:", i);
 
    printf("Surname: ");
    scanf ("%s", list[i].surname);
    
    printf("Name: ");
    scanf ("%s", list[i].name);
 
    printf("Lastname: ");
    scanf ("%s", list[i].lastname);
  }
 
  printf("\nList of people:\n");
 
  for(i = 0; i < n; ++i)
    printf("Man: %s %c. %c.\n", list[i].surname, list[i].name[0], list[i].lastname[0]);
 
  system("pause");
  
  return 0;
}
Компилятора Си под рукой нет, так что проверь.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9383 / 5433 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
23.01.2010, 18:56     Строки в С... #13
Romksuper, было уже
Romksuper
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 31
23.01.2010, 23:30  [ТС]     Строки в С... #14
easybudda, у меня компилятор борланд, а там не все, что на вижуале пойдет_))))) увы

Добавлено через 6 минут
CyBOSSeR, спасибо большое, обьясни суть следующих операторов:
C
1
#define MAX_LENGHT 32
C
1
system("pause");
C
1
FullName* list = NULL;
C
1
scanf ("%s", list[i].surname);
Я просто новичок в С, еще не понимаю некоторых вещей...
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9383 / 5433 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
23.01.2010, 23:36     Строки в С... #15
Цитата Сообщение от Romksuper Посмотреть сообщение
у меня компилятор борланд
И про это много раз уже говорили. После последнего #include две строки вставьте:
C
1
2
#pragma hdrstop
#pragma argsused
и будет Вам счастье.
Romksuper
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 31
23.01.2010, 23:43  [ТС]     Строки в С... #16
а вчем разница? что эти оперы делают?
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2295 / 1665 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
24.01.2010, 00:26     Строки в С... #17
Romksuper
C
1
#define MAX_LENGHT 32
Это макрос. Препроцессор (один из компонентов среды разработки), который запускается перед компиляцией, везде где в тексте программы встречается строка MAX_LENGHT, заменит ее на 32. Структура FullName после обработки исходника препроцессором примет следующий вид:
C
1
2
3
4
5
struct FullName{
  char surname [32];
  char name    [32];
  char lastname[32];
};
C
1
system("pause");
Приостановит выполнение программы до нажатия какой-либо клавиши с выводом сообщения "Для продолжения нажмите любую клавишу" на консоль. Если бы не было данного оператора, программа бы после выполнения сразу закрывалась и пользователь не успел бы увидеть результат.

C
1
FullName* list = NULL;
Объявление указателя на структуру (или массив структур) FullName и инициализация его пустым указателем NULL (указатель, который ни на что не указывает). Указатели это отдельная тема, которую лучше изучать по соответствующей литературе.

C
1
scanf ("%s", list[i].surname);
Общий смысл: считываем с консоли строку и записываем ее в list[i].surname.
Вообще функция scanf предназначена для считывания данных введенных с консоли.
Также советую обратится к литературе, приведу лишь пример:
C
1
2
3
4
5
6
7
8
9
int   int_number   = 0;
float float_number = 0.0f;
char  symbol       = '\0';
char  string[256];
 
scanf("%d", &int_number);   /* считываем целое число*/
scanf("%а", &float_number); /* считываем вещественное число*/
scanf("%с", &symbol);       /* считываем символ*/
scanf("%s", string);        /* считываем строку*/
Romksuper
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 31
24.01.2010, 00:32  [ТС]     Строки в С... #18
Меня на выводе в конце выбрасывает_(((((((
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2295 / 1665 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
24.01.2010, 01:27     Строки в С... #19
Цитата Сообщение от Romksuper Посмотреть сообщение
Меня на выводе в конце выбрасывает_(((((((
Чей исходник брал и что означает выбрасывает?

Romksuper, вот чуть поправленный вариант (добавлено освобождение памяти и улучшен вывод):
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>
#include <stdlib.h>
 
#define MAX_LENGHT 32
 
struct FullName{
  char surname [MAX_LENGHT];
  char name    [MAX_LENGHT];
  char lastname[MAX_LENGHT];
};
 
int main()
{
  int       n    = 0;
  FullName* list = NULL;
  int       i;
 
  printf("Number of people: ");
  scanf("%d", &n);
 
  list = (FullName*)malloc(sizeof(FullName) * n);
 
  for(i = 0; i < n; ++i){
    printf("*** Man %d ***\n", i + 1);
 
    printf("Surname: ");
    scanf ("%s", list[i].surname);
 
    printf("Name: ");
    scanf ("%s", list[i].name);
 
    printf("Lastname: ");
    scanf ("%s", list[i].lastname);
  }
 
  printf("\nList of people:\n");
 
  for(i = 0; i < n; ++i)
    printf("Man: %s %c. %c.\n", list[i].surname, list[i].name[0], list[i].lastname[0]);
 
  free(list);
 
  system("pause");
 
  return 0;
}
Никаких ошибок, только что проверил.

Результат во вложениях.
Миниатюры
Строки в С...  
Yandex
Объявления
24.01.2010, 01:27     Строки в С...
Ответ Создать тему
Опции темы

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