Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 08.11.2022
Сообщений: 9
1

Разделить массив на отдельные слова

28.12.2022, 12:26. Показов 316. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, нужно разделить массив name на 2 массива name1 и name2 чтобы их не вводить отдельно

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 <iostream>
using namespace std;
 
const int n=20;
char name[n] = "Ivan Ivanov"
//char name1[n] = "Ivan";
//char name2[n] = "Ivanov";
 
void Change(char *name1, char *name2) 
{
    char x;
    int i;
    for (i=0; i<n; i++) 
    {
        x = name1[i];
        name1[i] = name2[i];
        name2[i] = x;
    }
}
 
int main() 
{
    Change (name1, name2);
    cout<<name1<<' '<<name2;
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2022, 12:26
Ответы с готовыми решениями:

Char массив, развернуть отдельные слова
Здравствуйте, Подскажите пожалуйста, мне нужно в предложении все слова развернуть в обратном...

Выделить отдельные слова в строке и записать их в массив
Задано строку из трех слов. Выделить отдельные слова и записать их в массив, рассортировав по...

Разбить введенную строку на отдельные слова, выделив под каждое свой массив
помогите

Разбить введенную строку на отдельные слова, выделив под каждое свой массив
Тема: многомерные динамические массивы 1. Разбить введенную строку на отдельные слова, выделив под...

Разделить массив Char на слова
Привет.. Вот есть массив символов: char buf; Немного далее в коде он печатается: printf(buf);...

7
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
28.12.2022, 12:31 2
Внятно сформулируй.
0
0 / 0 / 0
Регистрация: 08.11.2022
Сообщений: 9
28.12.2022, 13:39  [ТС] 3
нужно массив в котором записаны имя и фамилия разделить на 2 отдельных массива. первый имя, второй фамилия
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
28.12.2022, 13:45 4
В 6-7 это сделано.
0
Модератор
Эксперт С++
13678 / 10888 / 6465
Регистрация: 18.12.2011
Сообщений: 29,048
28.12.2022, 13:45 5
Лучший ответ Сообщение было отмечено Yana K как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
void Change(char *name1, char *name2) 
{
    int i=0;
    while(name1[i]!=' ')
        i++;
    name1[i++]='\0'; // пробел заменили на терминальный ноль
    int j=0;
    for(;name1[i]!='\0';i++)  // остаток строки скопировали в name2
       name2[j++]=name1[i];
    name2[j] = '\0';
}
int main() 
{
   const int n=20;
   char str1[n] = "Ivan Ivanov";
   char str2[n];
   Change(str1,str2);
   cout<<str1<<'\n'<<str2;
   return 0;
}
1
0 / 0 / 0
Регистрация: 08.11.2022
Сообщений: 9
28.12.2022, 13:53  [ТС] 6
Можете помочь правильно оформить, пожалуйста

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
#include <iostream>
using namespace std;
 
const int n=20;
char name[n] = "Ivan Ivanov";
 
 
void Change(char *name1, char *name2) 
{
    int i=0;
    while(name1[i]!=' ')
        i++;
    name1[i++]='\0'; // конец имени
    int j=0;
    for(;name1[i]!='\0';i++) 
       name2[j++]=name1[i];
    name2[j] = '\0';
    cout<<name1<<' '<<name2;
}
 
 
int main() 
{
    Change(char *name1, char *name2);
   
return 0;
}
0
Модератор
Эксперт С++
13678 / 10888 / 6465
Регистрация: 18.12.2011
Сообщений: 29,048
28.12.2022, 13:58 7
Лучший ответ Сообщение было отмечено Yana K как решение

Решение

Yana K, в моём коде уже всё правильно оформлено.
Используйте его.
1. Не надо создавать глобальные переменные без крайней необходимости.
2. Не надо делать вывод в функциях обработки.

Можно сделать более изящно, если использовать указатели на начало имени и фамилии
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
void Change(char *str, char* &name,char* &surname) // указатели передаём по ссылке, чтобы можно было их менять 
{
    name=str; // адрес перого символа имени
    int i=0;
    while(str[i]!=' ')
        i++;
    str[i++]='\0'; // пробел заменили на терминальный ноль
    surname=str+i; // адрес первого символа фамилии
}
int main() 
{
   const int n=20;
   char str1[n] = "Ivan Ivanov";
   char *p1,*p2;
   Change(str1,p1,p2);
   cout<<p1<<'\n'<<p2;
   return 0;
}
1
0 / 0 / 0
Регистрация: 08.11.2022
Сообщений: 9
28.12.2022, 14:03  [ТС] 8
Я бы и не использовала глобальные переменные, но вот по заданию было необходимо именно глобально объявить, благодарю за помощь
0
28.12.2022, 14:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.12.2022, 14:03
Помогаю со студенческими работами здесь

Разделить строку AnsiString на слова и записать их в массив!
Доброго времени суток, что не так? char lecs; for (i=0;i&lt;1;i++) { String str =...

Разделить массив байт на отдельные слова
Имеется массив байт с текстовым содержанием, разные части текста разделяются нулевым символом &quot;00...

Как разделить строку на отдельные слова?
Надо разделить строку на отдельные слова. Например - 'abc45def' надо разделить на 'abc' и 'def'....

Разделить строку на отдельные слова не используя стандартные средства для разбиения строк
Дана строка S. Разделить строку на отдельные слова не используя стандартные средства для...

Разделить двумерный массив на отдельные массивы
Я новичок, не могу понять. При сканировании системы были найдены уязвимости 4 классов. Программа...

Дана строка S. Разделить строку на отдельные слова не используя стандартные средства для разбиения строк
class Program { static void enter( out char chars) { string str = Console.ReadLine() ; chars =...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru