Запись строки в обратном порядке в новую строку - C (СИ)
Формулировка задачи:
По заданию нужно ввести строку и переписать ее в обратном порядке в новую строку. Где-то ошибка в цикле:
Листинг программы
- char s[100],s1[100];
- int i,j,n=0;
- puts("Enter a string:" );
- gets(s);
- for(i=0;s[i]!='\0';i++)
- n++;
- printf("The line printed backward is: " );
- for(j=0;j<=n;j++)
- {
- for(i=n-1;i>=0;i--)
- {
- s1[j]=s[i];
- }
- printf("%c",s1[j]);
- }
Решение задачи: «Запись строки в обратном порядке в новую строку»
textual
Листинг программы
- char * pS = s, * pS1 = s1;
- while ( *pS )
- ++pS;
- while ( pS > s )
- *pS1++ = *(--pS);
- *pS1 = '\0';
Объяснение кода листинга программы
s
- исходная строкаpS
- указатель на первый символ исходной строкиpS1
- указатель на переменную, в которую будет записываться обратная строка*
- символ, используемый для разыменования указателейpS > s
- условие, которое означает, что указательpS
должен быть больше, чем указательs
pS1++
- оператор, который увеличивает указательpS1
на единицу*(--pS)
- операция разыменования указателяpS
и получения значения, с последующим уменьшением указателяpS
на единицу*
- символ, используемый для разыменования указателейpS1 = s1
- присваивание указателюpS1
значения переменнойs1
s1
- переменная, в которую будет записываться обратная строка\0
- символ, который используется для обозначения конца строки*
- символ, используемый для разыменования указателейpS1
- указатель на переменнуюs1
pS1[0]
- первый символ переменнойs1
pS1[1]
- второй символ переменнойs1
pS1[2]
- третий символ переменнойs1
pS1[3]
- четвертый символ переменнойs1
pS1[4]
- пятый символ переменнойs1
pS1[5]
- шестой символ переменнойs1
pS1[6]
- седьмой символ переменнойs1
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д