Как распечатать строку в заданной позиции строки в C ++ - PullRequest
0 голосов
/ 19 марта 2011

У меня есть задание для реализации легкого текстового редактора в C ++, одна из функций может быть упрощена до следующего требования.

Например, у меня есть две строки: "stackoverflow" и "stackexchange".Меня просят напечатать «стопку» в самой левой позиции и переполнение «в самой правильной позиции.

У меня есть два вопроса:

  1. Длина каждой строки вывода должна быть фиксированной, но как управлять этой длиной в C ++? Например, я получаю входной параметр длины строки как 200. Как использовать эти 200 для обработки моего случая?
  2. Как точно определить положение строки вдлина? Для этого примера длина «стека» равна 5, тогда начальная позиция для «переполнения» должна быть «200-5-8 + 1 = 188».

Как это сделатьв С ++?

Ответы [ 2 ]

4 голосов
/ 19 марта 2011

1) Вы можете использовать манипуляторы std::setw() и std::right, которые позволяют устанавливать поле с помощью и флаги настройки в потоке:

#include <iostream>
#include <iomanip>

std::cout << "stack" << std::right << std::setw(188) << "overflow" << std::endl;

2) Вы можете использовать встроенные средствав std::string, чтобы найти положение конкретной подстроки:

std::string s("stackoverflow");
std::size_t p = s.find("overflow");
if (p != std::string::npos)
    std::cout << "Found substring 'overflow' at position: " << int(p) << std::endl;
0 голосов
/ 19 марта 2011

Добавлять пробелы после первого слова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...