Podkreślanie znaków za pomocą "^"

0

Cześć.
Potrzebuję napisać program, który podkreśla wybrane przeze mnie słowo z wczytanego wcześniej pliku tekstowego. Wszystko fajnie pięknie tylko nie wiem w jaki sposób program ma podkreślać słowo w taki sposób --> np.

 Dzisiaj jest piękna pogoda
                     ^^^^^^

Takie coś ma ostać wypisane na standardowym wyjściu, jeśli wybrałem słowo pogoda.

0

Przydałyby się ze trzy tablice znakowe:

  1. Pierwsza do przechowania zdania: Dzisiaj jest piękna pogoda
  2. Druga do przechowania słowa: pogoda
    Zanim pomyślimy nad trzecią tablicą należy sprawdzić, czy słowo pogoda jest zawarte w zdaniu z punktu 1
  3. Do ostatniej tablicy zapisywać spacje do miejsca, w którym zaczyna się słowo pogoda i wpisać 6 znaków '^'.
1
#include <iostream>
#include <string>

using namespace std;

int main() {
    string slowo;
    string tekst = "Zawsze jest dobra pogoda";
    cout << "Podaj słowo do podkreślenia w tekście: |" << tekst << "|\n";
    cin >> slowo;
    auto pozycja = tekst.find(slowo);
    cout << tekst << '\n';
    cout << string(pozycja,' ') << string(slowo.size(), '^') << endl;
}
3
#include <stdio.h>
#include <math.h>

void print_at(int pos, char what, int times) {
	while(pos --> 0) {
		putchar(' ');
	}
	while(times --> 0) {
		putchar(what);
	}
}

int distance(void const *a, void const *b) {
	return round(abs(a-b));
}

int main() {
	const char *source = "Piekna pogoda i takie tam rozne ciekawe";
	const char *subject = "pogoda";
	const char *location = strstr(source, subject);
	puts(source);
	print_at(distance(source, location), '^', strlen(subject));
	return 0;
}

http://ideone.com/v9ZFsM

Piekna pogoda i takie tam rozne ciekawe
       ^^^^^^

1 użytkowników online, w tym zalogowanych: 0, gości: 1