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

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

Восстановить пароль Регистрация
 
EMTEC
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 110
14.12.2011, 23:56     Поэлементное копирование строки «Hello World» в другой символьный массив #1
Было вот такое задание "Написать программу поэле-ментногокопирования строки «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;
}
Но нужно более проще .Помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2011, 23:56     Поэлементное копирование строки «Hello World» в другой символьный массив
Посмотрите здесь:

C++ Копирование строки в двуъмерный массив
Символьный массив C++
C++ Копирование содержимого одного файла в другой посредством командной строки
Копирование массива поэлементно в другой массив C++
C++ Считывание строки в символьный массив
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
15.12.2011, 06:03     Поэлементное копирование строки «Hello World» в другой символьный массив #2
Цитата Сообщение от jeka061288 Посмотреть сообщение
Но нужно более проще
а куда проще то ? или вы под словом проще что-то другое подразумеваете ?
P.S.
Цитата Сообщение от jeka061288 Посмотреть сообщение
C++
1
b[11] = 0;
думаю должно быть вот так:
C++
1
b[11] = '\0';
EMTEC
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 110
15.12.2011, 07:37  [ТС]     Поэлементное копирование строки «Hello World» в другой символьный массив #3
мне нужно очень просто ,но как-то по другому.))
Bers
Заблокирован
15.12.2011, 08:02     Поэлементное копирование строки «Hello World» в другой символьный массив #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;
}
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
15.12.2011, 08:47     Поэлементное копирование строки «Hello World» в другой символьный массив #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;
}
Bers
Заблокирован
15.12.2011, 08:49     Поэлементное копирование строки «Hello World» в другой символьный массив #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. "Поэле-ментногокопировательно"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2011, 09:42     Поэлементное копирование строки «Hello World» в другой символьный массив
Еще ссылки по теме:

C++ Создать одномерный массив с операциями: * поэлементное умножение, max() максимальный элемент
Поэлементное заполнение строки числами C++
C++ В базовом классе вводится символьный массив, а в производном - проверка на максимальную длину строки

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

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
15.12.2011, 09:42     Поэлементное копирование строки «Hello World» в другой символьный массив #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;
Yandex
Объявления
15.12.2011, 09:42     Поэлементное копирование строки «Hello World» в другой символьный массив
Ответ Создать тему
Опции темы

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