Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
EMTEC
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 110
#1

Поэлементное копирование строки «Hello World» в другой символьный массив

14.12.2011, 23:56. Просмотров 1210. Ответов 6
Метки нет (Все метки)

Было вот такое задание "Написать программу поэле-ментногокопирования строки «Hello World» вдругой сим-вольный массив"вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
int main()
{
char a[] = "Hello World";
char b[12];
for (int i = 0; i < 11; ++i)
        b[i] = a[i];
b[11] = 0;
std::cout << b;
system("pause");
return 0;
}
Но нужно более проще .Помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2011, 23:56
Ответы с готовыми решениями:

Скопировать один символьный массив в другой
Привет всем, многоуважаемые пользователи не могу сделать программу. Нам даны...

Чем отличаются двумерный символьный массив и массив указателей на строки
Двумерный символьный массив и массив указателей на строки. Собственно чем они...

Считывание строки в символьный массив
1. Ввод из коммандной строки, число символов неизвестно. 2. Ввод из текстового...

Записать строки в многомерный символьный массив
Добрый день помогите пожалуйста. Вот есть массив mass, где 255 это длинна...

Копирование массива поэлементно в другой массив
Всем привет. Задание такое : Не используя оператора присваивания для массивов...

6
greeezz
274 / 167 / 21
Регистрация: 10.07.2011
Сообщений: 441
15.12.2011, 06:03 #2
Цитата Сообщение от jeka061288 Посмотреть сообщение
Но нужно более проще
а куда проще то ? или вы под словом проще что-то другое подразумеваете ?
P.S.
Цитата Сообщение от jeka061288 Посмотреть сообщение
C++
1
b[11] = 0;
думаю должно быть вот так:
C++
1
b[11] = '\0';
0
EMTEC
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 110
15.12.2011, 07:37  [ТС] #3
мне нужно очень просто ,но как-то по другому.))
0
Bers
Заблокирован
15.12.2011, 08:02 #4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <string.h>
 
int main ()
{
  char str1[]="Hello World";
  char str2[12];
  memcpy (str2,str1, sizeof(str1) );
  std::cout << str2;
}
0
greeezz
274 / 167 / 21
Регистрация: 10.07.2011
Сообщений: 441
15.12.2011, 08:47 #5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Не по теме:

Цитата Сообщение от Bers Посмотреть сообщение
memcpy (str2,str1, sizeof(str1) );
боюсь от этого у товарища jeka061288 будет инфаркт :)
з.ы. да и тут нет явного поэлементного копирвоания



Добавлено через 6 минут

так проще ?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main() {
 int i = 0;
 char a[] = "Hello World";
 char b[12];
 
 while (a[i] != '\0') {
    b[i] = a[i];
    i++;
 }
 b[i] = '\0';
 cout << b;
 system("pause");
 return 0;
}
Добавлено через 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
#include <iostream>
 
int main() {
    char a[] = "Hello World";
    char b[12];
 
    b[0] = a[0];
    b[1] = a[1];
    b[2] = a[2];
    b[3] = a[3];
    b[4] = a[4];
    b[5] = a[5];
    b[6] = a[6];
    b[7] = a[7];
    b[8] = a[8];
    b[9] = a[9];
    b[10] = a[10];
    b[11] = a[11];
 
    std::cout << b;
    system("pause");
    return 0;
}
1
Bers
Заблокирован
15.12.2011, 08:49 #6
Цитата Сообщение от greeezz Посмотреть сообщение
з.ы. да и тут нет явного поэлементного копирвоания
Ну можно так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void inline copy(char * dst, char* crc)
{
    while( *crc!='\0') *dst++=*crc++; 
    *dst='\0';
}
 
int main()
{
    char a[] = "Hello World";
    char b[12];
    
    copy(b,a);
    std::cout << b;
    system("pause");
    return 0;
}
хотя я называю подобные функции говнокодом, ибо ниразу не читабельно. К тому же не оптимизировано.

Зато:

1. Просто.
2. "Поэле-ментногокопировательно"
1
ForEveR
В астрале
Эксперт С++
7995 / 4754 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
15.12.2011, 09:42 #7
C++
1
2
3
4
char a[] = "Hello world";
char b[12];
std::copy(a, a + sizeof(a) / sizeof(*a), b);
std::cout << b << std::endl;
1
15.12.2011, 09:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2011, 09:42

Поэлементное заполнение строки числами
Здравствуйте, уважаемые форумчане! Помогите мне пожалуйста, ради Бога,...

В базовом классе вводится символьный массив, а в производном - проверка на максимальную длину строки
Здравствуйте. Помогите найти ошибку при наследовании класса. Есть такая...

Копирование содержимого одного файла в другой посредством командной строки
Здравствуйте, Передо мной встала задача написать программу, которая работала...


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

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

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