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

Как скопировать символ из символьного массива в другой массив - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.61
MrCath
7 / 7 / 1
Регистрация: 08.11.2012
Сообщений: 68
14.11.2012, 22:47     Как скопировать символ из символьного массива в другой массив #1
Есть массив s[10] и r[10] в обоих по 8 символов + \0 (окончание строки).
В s[4] есть символ "т", как его скопировать, например, в r[8]?
Проблема в том, что на попытку сделать так:
C++
1
s[5] = r[8]
или
C++
1
strcpy(s[5], r[8])
компилятор меня казнит, говоря, что это невозможно, но
C++
1
strcpy(s, r)
отлично работает.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2012, 22:47     Как скопировать символ из символьного массива в другой массив
Посмотрите здесь:

C++ Почему размер символьного массива должен быть больше на 1 символ, а не на 2?
Массив: Как скопировать двумерный массив в другой массив? C++
C++ Скопировать один элемент в другой в рамках такого массива
Скопировать из одного символьного массива в другой, начиная с определенной позиции C++
Скопировать все элементы массива в другой массив такого же размера C++
C++ Удалить символ из символьного массива
Скопировать один динамический массив в другой C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Костя Хута
0 / 0 / 0
Регистрация: 27.10.2012
Сообщений: 22
14.11.2012, 22:49     Как скопировать символ из символьного массива в другой массив #2
попробуй создать переменные char или string, в них записуй элементы массива,а потом в strcpy
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,910
Записей в блоге: 1
14.11.2012, 22:52     Как скопировать символ из символьного массива в другой массив #3
А зачем для этого стркопи использовать? скопируй как обычную переменную - элемент массива.
Цитата Сообщение от MrCath Посмотреть сообщение
на попытку сделать так:
s[5] = r[8]
значит или s[5] или r[8] - не есть символ.
покажи как они объявлены у тебя.
MastAKK
 Аватар для MastAKK
144 / 135 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
14.11.2012, 22:54     Как скопировать символ из символьного массива в другой массив #4
а разве нельзя
C++ (Qt)
1
r[8] = s[5];
?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12080 / 6941 / 782
Регистрация: 27.09.2012
Сообщений: 17,227
Записей в блоге: 2
Завершенные тесты: 1
14.11.2012, 22:55     Как скопировать символ из символьного массива в другой массив #5
Скорее всего, они у Вас объявлены как константные строковые литералы
MrCath
7 / 7 / 1
Регистрация: 08.11.2012
Сообщений: 68
14.11.2012, 22:56  [ТС]     Как скопировать символ из символьного массива в другой массив #6
Костя Хута, вы имеете ввиду типа
C++
1
2
3
4
char s[10], r[10],s1, r1;
s[5]=s1;
r[8]=r1;
strcpy (s1,r1);
увы, не выходит, я это и сам пробовал((
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12080 / 6941 / 782
Регистрация: 27.09.2012
Сообщений: 17,227
Записей в блоге: 2
Завершенные тесты: 1
14.11.2012, 22:57     Как скопировать символ из символьного массива в другой массив #7
Цитата Сообщение от MrCath Посмотреть сообщение
увы, не выходит, я это и сам пробовал((
Как Вы объявляете массивы со значениями?
А лучше вообще весь код выложите
MastAKK
 Аватар для MastAKK
144 / 135 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
14.11.2012, 22:57     Как скопировать символ из символьного массива в другой массив #8
Цитата Сообщение от MrCath Посмотреть сообщение
Костя Хута, вы имеете ввиду типа
C++
1
2
3
4
char s[10], r[10],s1, r1;
s[5]=s1;
r[8]=r1;
strcpy (s1,r1);
увы, не выходит, я это и сам пробовал((
судя по этому коду, они просто не инициализированны
Костя Хута
0 / 0 / 0
Регистрация: 27.10.2012
Сообщений: 22
14.11.2012, 23:01     Как скопировать символ из символьного массива в другой массив #9
Стоп..вам нужно просто поменять местами?

char s[10], r[10],temp;
temp=s[5];
s[5]=r[8];
r[8]=temp;
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12080 / 6941 / 782
Регистрация: 27.09.2012
Сообщений: 17,227
Записей в блоге: 2
Завершенные тесты: 1
14.11.2012, 23:05     Как скопировать символ из символьного массива в другой массив #10
Цитата Сообщение от MrCath Посмотреть сообщение
strcpy(s[5], r[8])
компилятор меня казнит, говоря, что это невозможно
Само собой, strcpy принимает указатели, а Вы ей символ скармливаете.
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,910
Записей в блоге: 1
14.11.2012, 23:07     Как скопировать символ из символьного массива в другой массив #11
Цитата Сообщение от MrCath Посмотреть сообщение
увы, не выходит, я это и сам пробовал((
Почему ты не отвечаешь на мой вопрос?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12080 / 6941 / 782
Регистрация: 27.09.2012
Сообщений: 17,227
Записей в блоге: 2
Завершенные тесты: 1
14.11.2012, 23:08     Как скопировать символ из символьного массива в другой массив #12
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
int main(){
    char s[10]="abcdifgh";
    char r[10]="zyertgnh";
    s[5]=s[8];
    std::cout<<s;
    std::cin.get();
    return 0;
}
Всё работает как положено. Так что выкладывайте свой код... сдается мне, что что-то вы не так там делаете
MastAKK
 Аватар для MastAKK
144 / 135 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
14.11.2012, 23:15     Как скопировать символ из символьного массива в другой массив #13
ты неправильно массив заполняешь. Тогда строки используй, вроде примерно так (если будет ошибка не ругайтесь, только учусь):
C++
1
2
3
4
5
6
char* s = new char[8];
s = 'abcdefgh'
char* r = new char[8];
r = ' zyertgnh ';
s[5] = r[8];
std::cout << r[8];
ValeryS
Модератор
6403 / 4869 / 447
Регистрация: 14.02.2011
Сообщений: 16,160
14.11.2012, 23:19     Как скопировать символ из символьного массива в другой массив #14
Цитата Сообщение от MrCath Посмотреть сообщение
C++
1
2
3
4
char s[10], r[10],s1, r1;
s[5]=s1;
r[8]=r1;
strcpy (s1,r1);
ну и что ты написал???
первая строка объявление двух массивов и двух чаров все неинициализировано
вторая строка в шестой элемент массива заносишь свой чар в котором неизвестно что
тоже в третьей строке
в четвертой ты пытаешься скопировать функцией для копирования строк скопировать один чар в другой
вот правильное использование функции
C++
1
2
3
char str[] = "образец строки";
   char  buf[32];  
   strcpy(buf, str);
потому что strcpy копирует строки(в конце должен быть 0)
если тебе просто нужно скопировать один массив в другой используй memcpy
MrCath
7 / 7 / 1
Регистрация: 08.11.2012
Сообщений: 68
14.11.2012, 23:23  [ТС]     Как скопировать символ из символьного массива в другой массив #15
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main(){
    char s[10],p[10];
    int i,t=0;
    gets(s);
    for (i=9; i>=0; i--){
        strcpy(s[t], p[i]);}
    cout << p;
return(0);}
в цикле пытаюсь перевернуть строку...
ValeryS
Модератор
6403 / 4869 / 447
Регистрация: 14.02.2011
Сообщений: 16,160
14.11.2012, 23:23     Как скопировать символ из символьного массива в другой массив #16
Цитата Сообщение от MastAKK Посмотреть сообщение
s = 'abcdefgh'
Вот она ошибка ' для сивола
для строки "
т.е нужно написать
C++
1
s = "abcdefgh"
я уж не говорю о том что ты выделил 8 элементов а "abcdefgh" содержит 9 (в конце завещающий 0)
MastAKK
 Аватар для MastAKK
144 / 135 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
14.11.2012, 23:23     Как скопировать символ из символьного массива в другой массив #17
Если нужно с заполнением с клавы можно сделать так:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
char s[10];
char r[10];
for(int i = 0; i < 10; i++]{
    cin >> s[i];
}
for(int i = 0; i < 10; i++]{
    cin >> r[i];
}
s[5]=s[8];
std::cout<<s;
ValeryS
Модератор
6403 / 4869 / 447
Регистрация: 14.02.2011
Сообщений: 16,160
14.11.2012, 23:23     Как скопировать символ из символьного массива в другой массив #18
удалил (сообщение сдублировалось)
MrCath
7 / 7 / 1
Регистрация: 08.11.2012
Сообщений: 68
14.11.2012, 23:23  [ТС]     Как скопировать символ из символьного массива в другой массив #19
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main(){
    char s[10],p[10];
    int i,t=0;
    gets(s);
    for (i=9; i>=0; i--){
        strcpy(s[t], p[i]);
                       t++;}
    cout << p;
return(0);}
в цикле пытаюсь перевернуть строку...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2012, 23:30     Как скопировать символ из символьного массива в другой массив
Еще ссылки по теме:

Скопировать один массив char в другой C++
C++ Как скопировать часть массива WCHAR в массив BYTE?
C++ Цикл: каждый символ символьного массива вывести на новой строке консоли
Скопировать один символьный массив в другой C++
Скопировать один массив в другой, используя указатели C++

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

Или воспользуйтесь поиском по форуму:
MastAKK
 Аватар для MastAKK
144 / 135 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
14.11.2012, 23:30     Как скопировать символ из символьного массива в другой массив #20
Цитата Сообщение от ValeryS Посмотреть сообщение
я уж не говорю о том что ты выделил 8 элементов а "abcdefgh" содержит 9 (в конце завещающий 0)
извиняюсь, не правильно сосчитал

по-поводу кавычек... в стрингах она вроде одна
Yandex
Объявления
14.11.2012, 23:30     Как скопировать символ из символьного массива в другой массив
Ответ Создать тему
Опции темы

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