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

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

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

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

14.12.2011, 23:56. Просмотров 863. Ответов 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;
}
Но нужно более проще .Помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2011, 23:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поэлементное копирование строки «Hello World» в другой символьный массив (C++):

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

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

Считывание строки в символьный массив - C++
1. Ввод из коммандной строки, число символов неизвестно. 2. Ввод из текстового файла, число символов неизвестно. Например, int...

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

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

Поэлементное заполнение строки числами - C++
Здравствуйте, уважаемые форумчане! Помогите мне пожалуйста, ради Бога, замучился уже:( Цель следующая - необходимо объявить строку,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
15.12.2011, 06:03 #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  [ТС] #3
мне нужно очень просто ,но как-то по другому.))
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;
}
greeezz
272 / 165 / 4
Регистрация: 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;
}
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. "Поэле-ментногокопировательно"
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 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;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2011, 09:42
Привет! Вот еще темы с ответами:

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

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

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

Копирование строки в двуъмерный массив - C++
Помогите разобратся в чем проблема Необходимо скопировать значение переменной b в двухмерный динамический массив ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.12.2011, 09:42
Ответ Создать тему
Опции темы

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