Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/40: Рейтинг темы: голосов - 40, средняя оценка - 4.50
4 / 4 / 0
Регистрация: 04.09.2013
Сообщений: 14
1

Вывести текст задом наперед без использования strrev()

05.09.2013, 15:48. Показов 7242. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.

Мучаюсь над таким "ученическим" вопросом: есть задача - вывести текст задом наперед. Чтоб в одно поле текст вводился, нажималась кнопочка - текст выводился наоборот. Как это сделать, используя strrev() - я написала, после этого мне задачу усложнили - сделать тоже самое без этой функции. И вот тут я села в лужу...

Текст может быть любой длины, с любыми символами.

Пожалуйста, будете давать решение - объясните, что и откуда взялось, чтоб можно было понять, как это делается и какие функции для чего нужны и при каких условиях используются. Я новичок в программировании, самоучка.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2013, 15:48
Ответы с готовыми решениями:

Можно ли вывести число задом наперед через цикл (не используя strrev)?
Нужно вывести число задом наперед используя исключительно одно из: for, while, switch, if, else....

Проверить является ли строка палиндромом без использования strrev
Есть у меня такая задача,нужно написать программу, проверяющую, является ли строка палиндромом.не...

Вывести текст, произнося предложения задом наперед
Винни Пух любит складывать стишки, произнося предложения задом наперед. Как-то ему попалось сложное...

текст задом наперед
Нужно написать прогу, которая открывала текствый файл и переписывала слова справа...

9
55 / 55 / 8
Регистрация: 29.08.2012
Сообщений: 175
05.09.2013, 16:44 2
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
//вариант1
$str = "Hello Friend";
$str2 = '';
$count = strlen($str);
for($i=1;$i<=$count;$i++){
    $str2 .= substr($str,-$i,1);
}
//вариант2
 
$arr = array_reverse(str_split($str));
$str3=implode($arr);
echo $str2;
echo $str3;
0
4 / 4 / 0
Регистрация: 04.09.2013
Сообщений: 14
05.09.2013, 16:48  [ТС] 3
А что делать, если вместо "Hello Friend" у нас
HTML5
1
2
3
4
<body>
 <form action="" method="post">
    Введите текст <input type="text" style="width: 300px; height: 100px;" name="text" /><br />
</form>
??
0
55 / 55 / 8
Регистрация: 29.08.2012
Сообщений: 175
05.09.2013, 16:54 4
Без разницы
0
113 / 70 / 2
Регистрация: 31.07.2010
Сообщений: 337
05.09.2013, 17:35 5
FlyMouse86
А ничего не забыли?
Цитата Сообщение от Sher_the_cat Посмотреть сообщение
Текст может быть любой длины, с любыми символами.
0
4 / 4 / 0
Регистрация: 04.09.2013
Сообщений: 14
06.09.2013, 10:54  [ТС] 6
Вот-вот, я про то же...
Мне не просто текст нужно вывести. Мне нужно ЛЮБОЙ текст выводить. Повторюсь: Есть поле для ввода текста. Туда вводится хоть "Hello World", хоть том Войны и Мира, нажимается кнопочка submit и открывается окошко с этим текстом, написанным задом наперед.

Подсказали делать циклом с двумя переменными, но я так понимаю, это и есть первый вариант FlyMouse86. Вот что получилось. Есть первый файл:
HTML5
1
2
3
4
5
<body>
 <form action="foo2.php" method="post">
    Введите текст <input type="text" style="width: 300px; height: 100px;" name="text" /><br />
<input type="submit" name="submit" value="Отправь меня!" />
</form>
Есть второй файл:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if (isset ($_POST['submit'])) {
$str = "text";
$str2 = '';
$count = strlen($str);
for($i=1;$i<=$count;$i++){
    $str2 .= substr($str,-$i,1);
}
echo $str2;
}
 
?>
Но при нажатии кнопки submit скрипт выдает задом наперед слово text, вместо того текста, что был введен в формочку. Что нужно вписать в переменную str, чтоб скрипт заработал так, как надо?
0
113 / 70 / 2
Регистрация: 31.07.2010
Сообщений: 337
06.09.2013, 11:04 7
Я вообще то не про то. С кириллицей этот скрипт работать не будет.
Не стану томить. Вот так нужно:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 
if (isset($_POST['submit'])) {
 
    $str = @$_POST['text'];
    $str2 = '';
    $count = mb_strlen($str, 'utf-8');
    
    for($i=1; $i<=$count; $i++){
        $str2 .= mb_substr($str, -$i, 1, 'utf-8');
    }
    
    echo $str2;
}
?>
 
<form action="" method="post">
    Введите текст <input type="text" style="width: 300px; height: 100px;" name="text" /><br />
<input type="submit" name="submit" value="Отправь меня!" />
</form>
1
4 / 4 / 0
Регистрация: 04.09.2013
Сообщений: 14
06.09.2013, 13:59  [ТС] 8
А, вот оно что...

Но тут тоже что-то не так, потому как этот скрипт выдает текст не задом наперед, а с перепутанными буквами: вместо "Привет, мир" он выдал "ирт, мивеПр"

Добавлено через 1 час 48 минут
Цитата Сообщение от nubo Посмотреть сообщение
Я вообще то не про то. С кириллицей этот скрипт работать не будет.
То есть, то, что он путает буквы в фразах на кириллице - это называется "не будет работать"?)

На самом деле у меня он работает с кириллицей, когда в метатеге файла прописано charset="windows-1251", а из кода убрано 'utf-8'
0
113 / 70 / 2
Регистрация: 31.07.2010
Сообщений: 337
06.09.2013, 17:54 9
Цитата Сообщение от Sher_the_cat Посмотреть сообщение
На самом деле у меня он работает с кириллицей, когда в метатеге файла прописано charset="windows-1251", а из кода убрано 'utf-8'
Ну тогда он не будет работать с китайскими иероглифми

Просто я так думал, что это какая-то контрольная работа. И вопрос про любые символы не просто так, а с подвохом.

А скрипт рабочий, если с mb_. Ничего там не должно путаться.
0
4 / 4 / 0
Регистрация: 04.09.2013
Сообщений: 14
10.09.2013, 13:23  [ТС] 10
Не совсем контрольная. Скорее, упражнения на освоение языка. Мне проще изучать что-то, делая конкретные примеры, чем читая учебники. С учебниками я засыпаю странице на 10-й.
0
10.09.2013, 13:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2013, 13:23
Помогаю со студенческими работами здесь

Текст задом наперед
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; char* funkcja(char* s) {

Текст задом наперед
1) Вообщем, например, в переменной забито a$=&quot;вася пупкин&quot;, нам надо, чтобы он вывел так: н и к...

Вывести строку задом наперед
1)Пользователь вводит строку данных программа выводит из нее только цифры. 2)Вывести строку задам...

Вывести строку задом наперед
#include &lt;iostream&gt; using namespace std; int main() { int len; char temp; cin&gt;&gt;len; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru