Массив: в массив из строки сложить числа в каждый элемент с 0 до 10 по 2 - C (СИ)
Формулировка задачи:
у меня есть к примеру
Char str[]="010203040506"
int mas[10]
мне нужно что бы в интовый массив из строки числа сложились в каждый элемент с 0 до 10 по 2 тоесть должно выйти
mas[10] = {01, 02, 03, 04, 05, 06, 0, 0 ,0, 0}
в c# это функция Substring
а я не знаю как мне написать это
Решение задачи: «Массив: в массив из строки сложить числа в каждый элемент с 0 до 10 по 2»
textual
Листинг программы
char str[]="010203040506"; int mas[10]; char a[3]=""; int i; for(i=0; i<10; i++) mas[i]=0; for(int i=0; i<(int)strlen(str); i+=2) { memcpy(a,str+i,2); mas[i/2] = atoi(a); }
Объяснение кода листинга программы
В этом коде:
- Создается массив
mas
типаint
размером 10. - В каждой ячейке массива
mas
инициализируется значение 0. - Создается строка
str
размером 11 символов, содержащая числа от 0 до 10, каждое из которых занимает два символа. - Создается строка
a
размером 3 символа. - Происходит два цикла:
- В первом цикле происходит заполнение массива
mas
значениями 0. - Во втором цикле происходит следующее:
- В каждой итерации второго цикла происходит копирование двух символов из строки
str
в строкуa
. - Затем, используя функцию
atoi
, в соответствующую ячейку массиваmas
записывается числовое значение строкиa
. - Для записи числового значения в массив
mas
используется индекс, равный половине индекса строкиstr
, с которой производятся манипуляции в этой итерации.
- В каждой итерации второго цикла происходит копирование двух символов из строки
- В первом цикле происходит заполнение массива
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д