Вставить в строку пробелы так, чтобы ее длина стала равной заданной - C (СИ)
Формулировка задачи:
никак не могу разобраться... я новичок ((( смысл понимаю, реализовать не могу
Решение задачи: «Вставить в строку пробелы так, чтобы ее длина стала равной заданной»
textual
Листинг программы
int main() { char *str, *nstr; int len1, len2, len3, i, j, k, l, m, n; len1 = 11; len2 = 50; str = (char*) malloc(len1*sizeof(char)); nstr = (char*) malloc(len2*sizeof(char)) ; str[0] = 'a'; str[1] = ' '; str[2] = 's'; str[3] = ' '; str[4] = 'd'; str[5] = ' '; str[6] = 'q'; str[7] = ' '; str[8] = 'w'; str[9] = ' '; str[10] = 'd'; for(i=0;i<len1;i++) nstr[i]=str[i]; for(k=0;k<len1;k++) printf("%c", nstr[k]); for(len3 = 11; len3 < len2 ; ) for(i=0;i<len3 && len3 < len2;i++) { if (nstr[i]=='\x20') { for(j=len3-1; j>=i;j--) { nstr[j+1] = nstr[j]; } for(k=0;k<=len3;k++) printf("%c", nstr[k]); printf("\n"); len3++; i++; } } free(str); free(nstr); return 0; }
Объяснение кода листинга программы
- Объявлены переменные:
- char str, nstr;
- int len1, len2, len3, i, j, k, l, m, n;
- Выделена память под строку str и nstr:
- str = (char) malloc(len1sizeof(char));
- nstr = (char) malloc(len2sizeof(char)) ;
- В строку str добавлены символы 'a', ' ', 's', ' ', 'd', ' ', 'q', ' ', 'w', ' ', 'd'.
- Строка nstr инициализирована символами строки str:
- for(i=0;i<len1;i++) nstr[i]=str[i];
- В цикле выводятся символы строки nstr:
- for(len3 = 0; len3 < len1; len3++) printf(
%c
, nstr[len3]);
- for(len3 = 0; len3 < len1; len3++) printf(
- В цикле добавляются пробелы в строку nstr:
- for(len3 = 11; len3 < len2 ; )
- for(i=0;i<len3 && len3 < len2;i++)
- if (nstr[i]=='\x20')
- {
- for(j=len3-1; j>=i;j--)
- {
- nstr[j+1] = nstr[j];
- }
- for(k=0;k<=len3;k++)
- {
- printf(
%c
, nstr[k]); - }
- printf(
\n
);
- len3++;
- }
- Освобождена память, выделенная под строки str и nstr:
- free(str);
- free(nstr);
- Возвращено значение 0, что означает успешный конец работы программы.
- return 0;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д