Следующая инициализация не кажется, что то, что вы имели в виду (хотя они компиляция):
char a[50] = {" 99 98 100 97 101 "};
char b[50] = {"bcdae"};
Если вы имели в виду:
char a[50] = {99, 98, 100, 97, 101};
char b[50] = "bcdae";
Тогда содержимое двух массивов идентично.
Если вы имели в виду:
char a[50] = {99 , 98 , 100, 97, 101};
char b[50] = {'b', 'c', 'd', 'a', 'e'};
Затем содержимое двух массивов идентичны.
Если вы имели в виду:
char a[50] = " 99 98 100 97 101 ";
char b[50] = "bcdae";
что эквивалентно тому, что вы в курсе, то вы можете использовать это:
#include "string.h"
void a2b(char a[],char b[])
{
int i = 0, j;
char* pch = strtok(a," ");
while (pch != NULL)
{
b[i] = 0;
for (j=0; pch[j]!=0; j++)
{
b[i] *= 10;
b[i] += pch[j]-'0';
}
i++;
pch = strtok(NULL," ");
}
b[i] = 0;
}
Пожалуйста, обратите внимание, однако, что приведенный выше код изменяет содержимое первого массива.
Используйте sscanf и sprintf в цикле. –