Как я могу добавить больше значений в массив символов с помощью указателей? (Начальный) - PullRequest
0 голосов
/ 09 ноября 2018
#include <iostream>
using namespace std;


char a[50];

void addSpace (){
cin.getline (a,50);
const char * x = a;
while (x != a + sizeof(a)) {
cout << *x << " ";
++x;
}
}

int main() {
addSpace();
cout << endl;
return 0;
}

Я довольно новичок. Я сделал этот код вчера вечером, которым я действительно горжусь, но он только для чтения. Это на самом деле не изменение значений массива. Можно ли создать функцию с помощью указателей, например, допустим, что мы вводим слово "Hello!" , чтобы изменить его таким образом, чтобы a [0] = 'H', a [1] = '', a [2] = 'e', ​​a [3] = '' a [4] = 'l' a [5] = '' ... и так далее? Использование указателей! Спасибо!

Edit: я думаю, что на самом деле сделал это, но для этого требуется еще один массив символов. Есть ли способ использовать только без b?

    #include <iostream>
using namespace std;


char a[50];
char b[sizeof(a)*2];

void addSpace (){
cin.getline (a,50);
char * x = a;
char * y = b;
while (x != a + sizeof(a)) {
*y++=*x++;
*y++=' ';
}
cout << b;
}

int main() {
addSpace();
cout << endl;
return 0;
}
...