Обратно печатать строку слово за словом? - PullRequest
0 голосов
/ 22 февраля 2011

пример:

  • Hello World

  • olleH dlroW

Я пытался использовать вместе функции strtok и strrev, но не смог. я могу перевернуть строку, но не могу дословно как в примере выше.

Ответы [ 5 ]

1 голос
/ 22 февраля 2011

Вы должны использовать функцию strtok () из string.h и просто печатать каждый токен с конца до начала.Если кажется сухим, разбивая проблему на более мелкиеНапример, попробуйте создать программу, которая печатает строку в обратном порядке.

Если вы предоставите некоторый код, мы сможем вам помочь.

1 голос
/ 22 февраля 2011

Сначала начните с начала (отметьте его) и идите вперед.Когда вы нажимаете пробел или конец строки, отметьте свою позицию и сделайте следующее:

Вернитесь назад (от вашей текущей позиции к последней отметке), убедившись, что вы не попали в недопустимое место в памяти, когдаразыменовывать указатели и печатать каждого персонажа на вашем пути.Перейдите к шагу 1, установив новую начальную метку, где вы остановились.

Продолжайте предыдущие шаги, пока полностью не прочитаете свою строку.

0 голосов
/ 22 февраля 2011

Спасибо всем вам.Я думаю, что нашел ответ, этот код работал.

int main ()
    {
        char string[100];
        char*word;

        printf("your sentence: \n");
        gets(string);
        word=strtok(string," ");

        while(word!=NULL){
        strrev(word);
        printf("%s ",word);
        word=strtok(NULL," ");
        } 
        getch();
      return 0;
    }
0 голосов
/ 22 февраля 2011

Я предполагаю, что вы уже знакомы с настройкой strtok, если не просто спросите.Обычно вам нужно установить strtok вверх, тогда, пока он не возвращает NULL, вам нужно будет передать указатель, который он возвращает, на strrev, а затем заменить завершающий NULL, помещенный на strtok, пробелом.

0 голосов
/ 22 февраля 2011

Зависит от того, какой язык программирования вы используете.Если вы используете c #, то

  1. вы можете разбить вашу строку на массив строк, используя метод string.split () с пробелами в качестве разделителя.
  2. Обратное отображение каждой строки в массиве
  3. Конкатрируйте все строки массива, чтобы создать обратную сторону оригинала.
...